@imj_media/tareas 1.6.2 → 1.6.3

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.
Files changed (39) hide show
  1. package/dist/src/components/atoms/InputSearch.d.ts +8 -3
  2. package/dist/src/components/molecules/ButtonAssignUsers.d.ts +3 -1
  3. package/dist/src/components/organisms/ConfirmationModal.d.ts +1 -1
  4. package/dist/src/components/organisms/DetailsTask.d.ts +1 -1
  5. package/dist/src/components/organisms/Task.d.ts +1 -1
  6. package/dist/src/core/actions/get_tasks_project.action.d.ts +9 -39
  7. package/dist/src/core/actions/get_tasks_response.action.d.ts +26 -3
  8. package/dist/src/core/actions/get_teams_project.action.d.ts +1 -1
  9. package/dist/src/hooks/useDoneTasks.d.ts +3 -3
  10. package/dist/src/hooks/useToDoTasks.d.ts +3 -3
  11. package/dist/src/hooks/useWorkingTasks.d.ts +3 -3
  12. package/dist/src/infraestructure/interfaces/atraso-reasons-response.d.ts +1 -1
  13. package/dist/src/infraestructure/interfaces/pause-reasons.d.ts +1 -1
  14. package/dist/src/infraestructure/interfaces/tasks-campania-response.d.ts +2 -1
  15. package/dist/src/infraestructure/interfaces/tasks-kanban-general.d.ts +3 -1
  16. package/dist/src/infraestructure/interfaces/tasks-reponse.d.ts +27 -4
  17. package/dist/src/infraestructure/mappers/pause-reasons.d.ts +1 -0
  18. package/dist/src/modules/teams/ui/atoms/TeamModalHeader.d.ts +2 -2
  19. package/dist/src/modules/templates/components/organisms/AddTemplateModal.d.ts +1 -1
  20. package/dist/src/modules/templates/components/organisms/NewTaskDrawer.d.ts +1 -1
  21. package/dist/src/modules/templates/hooks/filters/useStaticFilters.d.ts +1 -1
  22. package/dist/src/modules/templates/hooks/states/useStates.d.ts +1 -1
  23. package/dist/src/modules/templates/hooks/useFetchGraphTemplates.d.ts +1 -1
  24. package/dist/src/modules/templates/hooks/useFlow.types.d.ts +9 -9
  25. package/dist/src/modules/templates/hooks/useFlowActions.d.ts +1 -1
  26. package/dist/src/modules/templates/infraestructure/interfaces/filter.types.d.ts +4 -3
  27. package/dist/src/shared/store/useStore.d.ts +4 -2
  28. package/dist/src/types/index.d.ts +27 -3
  29. package/dist/src/utils/filters.functions.d.ts +1 -1
  30. package/dist/src/utils/flattenEquipoMiembros.d.ts +38 -0
  31. package/dist/src/utils/formats.d.ts +4 -18
  32. package/dist/src/utils/inputs.functions.d.ts +2 -2
  33. package/dist/src/utils/kanbanOwnerFilterPermissions.d.ts +7 -0
  34. package/dist/src/utils/mapListItemToDetailsTaskData.d.ts +6 -0
  35. package/dist/src/utils/tanstack.functions.d.ts +12 -1
  36. package/dist/tareas.cjs +9 -9
  37. package/dist/tareas.css +1 -1
  38. package/dist/tareas.es.js +6127 -5918
  39. package/package.json +1 -1
package/dist/tareas.cjs CHANGED
@@ -1,13 +1,13 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),le=require("@tanstack/react-query"),f=require("@imj_media/ui"),u=require("react"),tt=require("axios"),Ee=require("qs"),ne=require("@fortawesome/pro-regular-svg-icons"),qs=require("echarts-for-react"),de=require("@fortawesome/pro-solid-svg-icons"),Ft=require("react-dom"),Se=require("@fortawesome/free-solid-svg-icons"),mt=require("date-fns"),Mt=require("date-fns/locale"),Pe=require("react-hook-form"),oe=require("@xyflow/react"),We=require("zustand"),Et=require("moment"),Ve=require("@fortawesome/pro-duotone-svg-icons");require("@xyflow/react/dist/style.css");const zs=require("react-pick-color"),Zt=e=>{const a={...e};return delete a.project,delete a["project.id"],a},ea=e=>{let a={};return Object.entries(e).forEach(([n,s])=>{if(n.includes(".")){let[o,i]=n.split(".");a[o]=a[o]||{},a[o][i]=s}else a[n]=s}),a},Ia=u.createContext({}),$s=({children:e})=>{const[a,n]=u.useState({}),[s,o]=u.useState({}),[i,r]=u.useState([]),[l,d]=u.useState(""),c=({name:p,value:h})=>{function y(j){return!isNaN(j)&&j!==null&&j!==""?parseFloat(j):null}let w=y(h);o(j=>{let b={...j},v=i==null?void 0:i.find(O=>O.label.toLowerCase().replace(/ /g,"_")===p);return v?b[v.id]=w??h:b[p]=w??h,((v==null?void 0:v.id)??p)==="owner.config"&&(b["project.id"]=null),b})};u.useEffect(()=>{let p=i.map(h=>h.id==="owner.config"?[h.id,"yo_y_mis_equipos"]:h.id==="dependency"?[h.id,"ambas"]:[h.id,null]);o(h=>{const y={search:h==null?void 0:h.search,taskName:h==null?void 0:h.taskName};return p.forEach(([w,j])=>{y[w]=(h==null?void 0:h[w])!==void 0?h==null?void 0:h[w]:j}),y})},[i]);const m=()=>{let p=i.map(h=>h.id==="owner.config"?[h.id,"yo_y_mis_equipos"]:h.id==="dependency"?[h.id,"ambas"]:[h.id,null]);o(Object.fromEntries(p)),n(ea(Object.fromEntries(p)))},g=p=>({1:"Muy facil",2:"Facil",3:"Media",4:"Dificil",5:"Muy dificil"})[p],x=()=>{let p=ea(s);p.difficulty&&(p.difficulty=g(p.difficulty)),n(p)};return t.jsx(Ia.Provider,{value:{fields:i,filters:a,path:l,defineFields:r,updateFilters:c,cleanFilters:m,applyFilters:x,initialFilters:s,selectPath:d},children:e})},Me=()=>u.useContext(Ia),Da=u.createContext({}),Us=({children:e,user:a,url:n,mode:s})=>{const o=s==="prod"?"https://services.imjmedia.com.mx":"https://devobp.imjmedia.com.mx",i=tt.create({baseURL:n,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:d=>Ee.stringify(d,{encodeValuesOnly:!0})}),r=()=>o,l=d=>d==="undefined"||d===void 0?"":`${o}${d}`;return t.jsx(Da.Provider,{value:{tasks_api:i,getOBPUrlApi:r,getImageOBP:l},children:e})},pe=()=>u.useContext(Da),Fa=u.createContext({}),Hs=({children:e,user:a,url:n})=>{const s=tt.create({baseURL:n,headers:{Authorization:`Bearer ${a.accessToken}`},paramsSerializer:o=>Ee.stringify(o,{encodeValuesOnly:!0})});return t.jsx(Fa.Provider,{value:{user:a,tasks_api:s},children:e})},je=()=>u.useContext(Fa),be=e=>{const a=i=>Object.prototype.toString.call(i)==="[object Object]",n=i=>i&&typeof i=="object"&&("source"in i||"target"in i)&&!("attributes"in i),s=i=>i&&typeof i=="object"&&"position"in i&&typeof i.position=="object"&&("x"in i.position||"y"in i.position)&&!("attributes"in i),o=i=>i.attributes?{id:i.id,...i.attributes}:i;if(Array.isArray(e))return e.map(i=>be(i));if(a(e)){if(n(e)){const i={};for(const r in e)i[r]=be(e[r]);return i}if(s(e)){const i={};for(const r in e)i[r]=be(e[r]);return i}Array.isArray(e.data)?e=[...e.data]:a(e.data)?e=o({...e.data}):e.data===null?e=null:e=o(e);for(const i in e)e[i]=be(e[i]);return e}return e},ta=[{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"}]}],aa=[{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:[]}],xt=(e,a,n)=>`${e} ${e===1?a:n}`;function Ks(e){const a=e??{pausas:0,atrasos:0,vencidos:0};if((a.pausas??0)===0&&(a.atrasos??0)===0&&(a.vencidos??0)===0)return[{label:"Sin alertas",color:"gray",variant:"sin-alertas"}];const n=[];return(a.atrasos??0)>0&&n.push({label:xt(a.atrasos,"atrasada","atrasadas"),color:"danger",variant:"atrasos"}),(a.pausas??0)>0&&n.push({label:xt(a.pausas,"pausada","pausadas"),color:"warning",variant:"pausas"}),(a.vencidos??0)>0&&n.push({label:xt(a.vencidos,"vencida","vencidas"),color:"info",variant:"vencidos"}),n.slice(0,2)}const Vs=ne.faLightEmergencyOn,Gs={name:Vs},Ws=({tags:e})=>{const a=Array.isArray(e)?e:[];return t.jsx("div",{className:"tm-inline-flex tm-min-w-0 tm-max-w-full tm-flex-wrap tm-content-center tm-items-center tm-gap-1 tm-justify-center",children:a.map((n,s)=>t.jsx("div",{className:"tm-min-w-0 tm-max-w-full tm-flex-shrink-0",children:t.jsx(f.Tag,{label:n.label,color:n.color,stroke:!1,truncateLabel:!0,truncateTooltip:!0,infoIcon:n.variant==="atrasos"?Gs:void 0})},`${n.variant}-${n.label}-${s}`))})},Qs=(e,a=500)=>{const[n,s]=u.useState(e);return u.useEffect(()=>{const o=setTimeout(()=>{s(e)},a);return()=>{clearTimeout(o)}},[e,a]),n},Xs=async e=>{const a=Ee.stringify({fields:["id","nombre"],sort:["nombre:asc"]},{encodeValuesOnly:!0}),n=await e.get(`/api/equipos?${a}`);return n.data?{data:be(n.data.data)}:{data:[]}},Ma=()=>{const{tasks_api:e}=pe();return le.useQuery({queryKey:["teams"],queryFn:()=>Xs(e),staleTime:1e3*60*60*24,select:n=>n.data.map(o=>({label:o.nombre,value:o.id}))})},Ys="/api/listado-progreso",Js="/api/proyectos/listado-progreso";function Zs(e){return Ee.stringify(e,{encodeValuesOnly:!0,arrayFormat:"repeat"})}function en(e){var i,r,l;const a=Number(e.proyecto_id);if(!Number.isFinite(a)||a<=0||!Number.isInteger(a))throw new Error("listado-progreso: proyecto_id debe ser un entero positivo");const n=String(e.fase).trim().toLowerCase();if(n!=="preventa"&&n!=="venta")throw new Error('listado-progreso: fase debe ser "preventa" o "venta"');const s={proyecto_id:a,fase:n};(i=e.status)!=null&&i.length&&(s.status=e.status.map(d=>String(d).trim()).filter(Boolean)),(r=e.types_media)!=null&&r.length&&(s.types_media=e.types_media.map(d=>String(d).trim()).filter(Boolean)),(l=e.locations)!=null&&l.length&&(s.locations=e.locations.map(d=>String(d).trim()));const o=e.search!=null?String(e.search).trim():"";return o&&(s.search=o),e.blocked_only!==void 0&&(s.blocked_only=e.blocked_only===!0||e.blocked_only==="true"?"true":"false"),s}function sa(e){const a=Array.isArray(e.data)?e.data:[],n=e.grafico,s=e.graficos,o=Array.isArray(n)&&n.length>0?n:Array.isArray(s)?s:[];return{data:a,grafico:o}}async function na(e,a,n){const{data:s}=await e.get(a,{params:n,paramsSerializer:Zs});return s??{}}async function tn(e,a){var s;const n=en(a);try{const o=await na(e,Ys,n);return sa(o)}catch(o){if(tt.isAxiosError(o)&&((s=o.response)==null?void 0:s.status)===404){const i=await na(e,Js,n);return sa(i)}throw o}}function an({proyectoId:e,fase:a,enabled:n,filters:s}){const{tasks_api:o}=pe(),i=n&&Number.isFinite(e)&&Number.isInteger(e)&&e>0;return le.useQuery({queryKey:["listado-progreso",e,a,s],queryFn:()=>tn(o,{proyecto_id:e,fase:a,...s}),enabled:i,staleTime:3e4})}const sn=({campaignName:e,searchValue:a,onSearchChange:n})=>t.jsx("div",{className:"tm-border-b tm-border-default tm-pb-6 tm-pt-6",children:t.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-3",children:[t.jsx("h3",{className:"tm-text-[21px] tm-font-semibold tm-leading-tight tm-text-gray-800",children:e||"-"}),t.jsx("div",{className:"tm-w-full sm:tm-w-[260px] md:tm-w-[300px]",children:t.jsx(f.Input,{size:"sm",fullWidth:!0,leftSlot:ne.faSearch,placeholder:"Buscar...",value:a,onValueChange:n,clearable:!0,onClear:()=>n("")})})]})});function nn(e,a){Array.isArray(e)&&a(e.map(String))}function bt({options:e,selected:a,onChange:n,emptyPlaceholder:s,header:o,tagsOverflowPopoverTitle:i,panelSearch:r,panelSearchPlaceholder:l="Buscar…"}){return t.jsx(f.Dropdown,{field:{placeholder:s},items:{options:e},values:{value:a},events:{onValueChange:d=>nn(d,n)},multi:{multiple:!0,selectionSummary:"tags",tagsOverflow:"single-line",tagsOverflowPopoverTitle:i},popover:{fullWidth:!0},list:{listVariant:"search-multi-checkbox",searchMultiCheckbox:{header:o,search:{show:r,placeholder:l},showClearSelection:!1}},menuSearch:{searchable:!1}})}const on=({mediosOptions:e,plazasOptions:a,estadosOptions:n,selectedMedios:s,selectedPlazas:o,selectedEstados:i,onlyDelayed:r,onChangeMedios:l,onChangePlazas:d,onChangeEstados:c,onChangeOnlyDelayed:m})=>t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-2 tm-mt-5 tm-mb-5",children:t.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-3",children:[t.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-4 tm-flex-1",children:[t.jsx("div",{className:"tm-w-full sm:tm-w-[250px]",children:t.jsx(bt,{options:e,selected:s,onChange:l,emptyPlaceholder:"Todos los medios",header:{id:"listado-progreso-medios-all",label:"Todos los medios"},tagsOverflowPopoverTitle:"Medios seleccionados",panelSearch:!1})}),t.jsx("div",{className:"tm-w-full sm:tm-w-[250px]",children:t.jsx(bt,{options:a,selected:o,onChange:d,emptyPlaceholder:"Todas las plazas",header:{id:"listado-progreso-plazas-all",label:"Todas las plazas"},tagsOverflowPopoverTitle:"Plazas seleccionadas",panelSearch:!0,panelSearchPlaceholder:"Buscar…"})}),t.jsx("div",{className:"tm-w-full sm:tm-w-[250px]",children:t.jsx(bt,{options:n,selected:i,onChange:c,emptyPlaceholder:"Todos los estados",header:{id:"listado-progreso-estados-all",label:"Todos los estados"},tagsOverflowPopoverTitle:"Estados seleccionados",panelSearch:!1})})]}),t.jsx("div",{className:"tm-flex tm-items-center",children:t.jsx(f.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"}],rn=Object.fromEntries(kt.map(e=>[e.singular,e])),oa=kt.map(e=>e.serieApiName),ln=new Set(["atrasada","vencida"]);function Ot(e){return rn[e]}function cn(e){var a;return(a=Ot(e.trim().toLowerCase()))==null?void 0:a.serieApiName}function ka(e){return e?e.charAt(0).toUpperCase()+e.slice(1):""}function dn(e){const a=Ot(e);return a?a.uiLabel:ka(e)}function mn(e,a){const n=(e??"").trim().toLowerCase();if(!n)return[{label:a,color:"gray"}];const s=Ot(n);return s?[{label:s.uiLabel,color:s.tagColor}]:[{label:ka(n),color:"gray"}]}function un(e){var a,n;if(tt.isAxiosError(e)){const s=(a=e.response)==null?void 0:a.data;if(typeof s=="string"&&s.trim())return s;if(s&&typeof s=="object"&&"message"in s){const i=s.message;if(typeof i=="string")return i}const o=(n=e.response)==null?void 0:n.status;if(o)return`Error del servidor (${o}). Revisa logs del backend o el body de la respuesta.`}return e.message||"No se pudieron cargar los datos de progreso."}function pn(e){if(!e||typeof e!="object")return null;const n=e.event;if(n&&typeof n=="object"){const s=n;if(typeof s.offsetX=="number"&&typeof s.offsetY=="number")return{x:s.offsetX,y:s.offsetY};const o=s.event;if(o&&typeof o.offsetX=="number"&&typeof o.offsetY=="number")return{x:o.offsetX,y:o.offsetY}}return null}function fn(e){if(!e||typeof e!="object")return 0;const a=e.value;return typeof a=="number"?a:Array.isArray(a)&&typeof a[0]=="number"?a[0]:0}function gn(e){return(Number.isFinite(e)?e:0).toFixed(0)}const hn=({id:e,listadoProgreso:a,phaseLabel:n,listadoForUi:s})=>{const{isPending:o,isError:i,error:r,isSuccess:l,data:d}=a,[c,m]=u.useState(null),g=s??d,x=u.useMemo(()=>{const w=(g==null?void 0:g.grafico)??[],j=H=>{var M,N;return((N=(M=w.find(A=>A.name===H))==null?void 0:M.data)==null?void 0:N[0])??0},b=kt.map(H=>({key:H.serieApiName,label:H.chartLegendLabel,color:H.chartColorHex})),v=b.map(H=>H.label),O={legendLabel:{color:"#6C6E73",fontSize:12,fontWeight:"bold",padding:[0,0,0,20]}};return b.forEach((H,M)=>{O[`legendDot${M}`]={color:H.color,fontSize:20,fontWeight:"bold",padding:[0,0,0,6]}}),{tooltip:{show:!1},grid:{top:"20%",bottom:"20%",left:"7%",right:"3%"},xAxis:{type:"value",max:100,splitLine:{show:!0},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"category",data:[n],axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6C6E73",fontWeight:"bold",fontSize:12}},legend:{data:v,orient:"horizontal",top:"0%",left:"center",itemGap:30,icon:"none",itemWidth:0,itemHeight:0,formatter:H=>{const M=b.findIndex(N=>N.label===H);return M===-1?H:`{legendLabel|${H}}{legendDot${M}|●}`},textStyle:{rich:O}},series:b.map(H=>({name:H.label,type:"bar",stack:"total",itemStyle:{color:H.color},barWidth:"50%",data:[j(H.key)]}))}},[g==null?void 0:g.grafico,n]),p=u.useCallback(w=>{const j=w;if(j.componentType!=="series")return;const b=pn(w);if(!b)return;const v=fn(w),O=typeof j.seriesName=="string"?j.seriesName:"";m({x:b.x,y:b.y,label:`${gn(v)}% ${O}`})},[]),h=u.useCallback(()=>{m(null)},[]),y=u.useMemo(()=>({mouseover:p,mousemove:p,globalout:h}),[p,h]);return t.jsx(f.Accordion,{id:e,title:"Grafico de Tareas",subtitle:"Distribución de tareas por estatus",defaultOpen:!0,children:t.jsxs("div",{className:"tm-min-h-[140px] tm-w-full tm-border tm-rounded-3xl tm-border-default tm-px-2 tm-py-2 tm-bg-surface-default",children:[o&&t.jsx("h3",{className:"tm-flex tm-h-[140px] tm-items-center tm-justify-center tm-text-xl tm-font-medium tm-text-gray-500",children:"Cargando datos de progreso…"}),i&&r&&t.jsx("div",{className:"tm-flex tm-h-[140px] tm-items-center tm-justify-center tm-px-4 tm-text-center",children:t.jsx("span",{className:"tm-text-sm tm-font-medium tm-text-red-600",children:un(r)})}),l&&d&&t.jsxs("div",{className:"tm-relative tm-h-[140px] tm-w-full",children:[t.jsx(qs,{option:x,style:{height:"100%",width:"100%"},onEvents:y}),c&&t.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:t.jsx(f.InlineTooltip,{isVisible:!0,label:c.label,position:"top"})})]})]})})},Lt="-";function Ze(e){const a=String(e??"").trim();return a.length>0?a:null}function Qe(e){const a=String(e??"").trim();return a.length>0?a:Lt}function xn(e){var i,r,l,d,c,m,g,x,p,h;if(!e)return;const a=(l=(r=(i=e.formats)==null?void 0:i.thumbnail)==null?void 0:r.url)==null?void 0:l.trim(),n=(m=(c=(d=e.formats)==null?void 0:d.small)==null?void 0:c.url)==null?void 0:m.trim(),s=(p=(x=(g=e.formats)==null?void 0:g.medium)==null?void 0:x.url)==null?void 0:p.trim(),o=(h=e.url)==null?void 0:h.trim();return a||n||s||o||void 0}function bn(e){if(!e)return!1;if(e.startsWith("data:")||e.startsWith("blob:"))return!0;try{const a=new URL(e);return a.protocol==="http:"||a.protocol==="https:"}catch{return!1}}function Bt(e,a){const n=(e.nombre??"").trim()||Lt,s=xn(e.imagen??null);let o;if(s){const r=s.startsWith("http")||s.startsWith("data:")||s.startsWith("blob:")?s:a(s);bn(r)&&(o=r)}const i=n.slice(0,1);return{name:n,src:o,letter:i}}function yn(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 jn(e){return mn(e,Lt)}const Oa=4,ra=Oa-1,wn=120,vn=-8,ia=8;function _n(e){return e.length<=Oa?{visible:e,overflow:[]}:{visible:e.slice(0,ra),overflow:e.slice(ra)}}const nt="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",la="Sin responsable",La="bottom",Ba="center",Tn="tm-flex tm-max-w-xs tm-items-start tm-gap-2 tm-py-1",Nn="tm-text-sm tm-font-semibold tm-leading-snug tm-text-gray-900";function ca(e,a){return e<a-1?{marginRight:`${vn}px`}:void 0}function Cn({person:e,getImageOBP:a}){const{src:n,letter:s}=Bt(e,a);return n?t.jsx(f.Avatar,{type:"people",src:n,size:"xxs",className:nt}):t.jsx(f.Avatar,{type:"letter",text:s,size:"xxs",className:nt})}function Sn({person:e,getImageOBP:a}){const{name:n,src:s,letter:o}=Bt(e,a);return t.jsxs("div",{className:Tn,children:[s?t.jsx(f.Avatar,{type:"people",src:s,size:"xxs",className:`tm-mt-0.5 ${nt}`}):t.jsx(f.Avatar,{type:"letter",text:o,size:"xxs",className:`tm-mt-0.5 ${nt}`}),t.jsx("span",{className:Nn,children:n})]})}function En({popupId:e,trigger:a,children:n,popupBodyClassName:s="tm-p-3"}){const o=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},wn)},[l]);return u.useEffect(()=>()=>l(),[l]),t.jsxs("div",{className:"tm-relative tm-inline-flex tm-shrink-0",children:[t.jsx("span",{ref:o,className:"tm-inline-flex tm-cursor-default",onMouseEnter:d,onMouseLeave:c,children:a}),t.jsx(f.Popup,{ref:i,popupId:e,triggerRef:o,closeOnClick:!1,position:"bottom-center",children:t.jsx("div",{className:s,onMouseEnter:d,onMouseLeave:c,children:n})})]})}function Pn(){return t.jsx(f.Tooltip,{label:la,position:La,alignment:Ba,preserveLayout:!0,children:t.jsx("span",{className:"tm-inline-flex tm-shrink-0",role:"img","aria-label":la,children:t.jsx(f.Avatar,{type:"people",size:"xxs",className:nt,alt:""})})})}function An({person:e,getImageOBP:a}){const{name:n}=Bt(e,a);return t.jsx(f.Tooltip,{label:n,position:La,alignment:Ba,preserveLayout:!0,children:t.jsx("span",{className:"tm-inline-flex tm-shrink-0",children:t.jsx(Cn,{person:e,getImageOBP:a})})})}function In({overflow:e,getImageOBP:a,popupId:n}){return t.jsx(En,{popupId:n,popupBodyClassName:"tm-max-h-64 tm-overflow-y-auto tm-p-3",trigger:t.jsxs("span",{className:"tm-inline-flex tm-h-8 tm-w-8 tm-min-h-[32px] tm-min-w-[32px] tm-max-h-[32px] tm-max-w-[32px] tm-cursor-default tm-items-center tm-justify-center tm-rounded-control-pill tm-border tm-border-default tm-bg-fill-brand tm-text-xs tm-font-normal tm-leading-none tm-tracking-[0.5px] tm-text-on-color",children:["+",e.length]}),children:e.map((s,o)=>t.jsx(Sn,{person:s,getImageOBP:a},s.id!=null?`${s.id}-${o}`:o))})}const Dn=({responsables:e,getImageOBP:a,rowId:n})=>{const s=Array.isArray(e)?e:[];if(s.length===0)return t.jsx("div",{className:"tm-flex tm-min-w-0 tm-items-center",style:{paddingRight:`${ia}px`},children:t.jsx(Pn,{})});const{visible:o,overflow:i}=_n(s),r=o.length+(i.length>0?1:0);return t.jsxs("div",{className:"tm-flex tm-min-w-0 tm-items-center",style:{paddingRight:`${ia}px`},children:[o.map((l,d)=>{const c=l.id!=null?`r-${l.id}-${d}`:`r-${n}-${d}`;return t.jsx("div",{className:"tm-shrink-0",style:ca(d,r),children:t.jsx(An,{person:l,getImageOBP:a})},c)}),i.length>0?t.jsx("div",{className:"tm-shrink-0",style:ca(r-1,r),children:t.jsx(In,{overflow:i,getImageOBP:a,popupId:`listado-progreso-${n}-more`})}):null]})},Fn={name:de.faCircleSmall};function Mn({tags:e}){const a=Array.isArray(e)?e:[];return t.jsx("div",{className:"tm-inline-flex tm-min-w-0 tm-max-w-full tm-flex-wrap tm-content-start tm-items-center tm-gap-1",children:a.map((n,s)=>t.jsx("div",{className:"tm-min-w-0 tm-max-w-full tm-flex-shrink-0",children:t.jsx(f.Tag,{label:n.label,color:n.color,stroke:!1,truncateLabel:!0,truncateTooltip:!0,infoIcon:Fn})},`${n.label}-${s}`))})}const kn=({listadoProgreso:e,listadoForUi:a,hideClaveColumn:n=!1})=>{var d,c;const{getImageOBP:s}=pe(),o=u.useMemo(()=>{const m=[{id:"responsables",header:"Responsable",accessor:g=>g.responsables,width:140,minWidth:100,sortable:!1,filterable:!1,resizable:!1,render:(g,x)=>t.jsx(Dn,{responsables:x.responsables,getImageOBP:s,rowId:x.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:g=>jn(g.estado),contentAlign:"center",width:110,minWidth:90,sortable:!1,filterable:!1,resizable:!1,render:g=>t.jsx(Mn,{tags:Array.isArray(g)?g:[]})},{id:"nota",header:"Notas",accessor:"nota",width:100,minWidth:90,sortable:!1,filterable:!1,resizable:!1},{id:"tipo_medio",header:"Grupo medio",accessor:"tipo_medio",width:130,minWidth:110,sortable:!1,filterable:!1,resizable:!1},{id:"ubicacion",header:"Ubicación",accessor:"ubicacion",width:120,minWidth:100,sortable:!1,filterable:!1,resizable:!1}];return n||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},[s,n]),i=u.useMemo(()=>{var g;const m=(a==null?void 0:a.data)??((g=e.data)==null?void 0:g.data);return Array.isArray(m)?m.map(x=>({...x,id:x.id,...yn(x)})):[]},[a==null?void 0:a.data,(d=e.data)==null?void 0:d.data]),r=e.isPending||e.isFetching&&i.length===0&&!e.isError,l=u.useMemo(()=>{var x,p;const m=(x=e.data)==null?void 0:x.data,g=Array.isArray(m)?m.length:0;if(e.isError)return{type:"empty",icon:ne.faBan,title:"No se pudo cargar el listado",description:((p=e.error)==null?void 0:p.message)??"Revisa la conexión o vuelve a intentar."};if(e.isSuccess){if(g===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(g>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 t.jsx(t.Fragment,{children:t.jsx("div",{className:"tm-flex tm-min-h-0 tm-flex-col tm-mt-2 tm-h-[455px] tm-border tm-rounded-3xl tm-border-default",children:t.jsx(f.Table,{columns:o,columnsLockable:!1,rows:i,loading:r,hoverable:!1,bordered:!1,borderable:!1,stickyHeader:!0,empty:l,resizable:!1,expandable:!1,striped:!1,stickyCheckbox:!1})})})},On={preventa:"Preventa",venta:"Venta"},Ln=({campaignName:e,phase:a,search:n,listado:s,filters:o})=>{const i=On[a],r=a==="preventa";return t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-4",children:[t.jsx(sn,{campaignName:e,searchValue:n.value,onSearchChange:n.onChange}),t.jsx(on,{mediosOptions:o.mediosOptions,plazasOptions:o.plazasOptions,estadosOptions:o.estadosOptions,selectedMedios:o.selectedMedios,selectedPlazas:o.selectedPlazas,selectedEstados:o.selectedEstados,onlyDelayed:o.onlyDelayed,onChangeMedios:o.onChangeMedios,onChangePlazas:o.onChangePlazas,onChangeEstados:o.onChangeEstados,onChangeOnlyDelayed:o.onChangeOnlyDelayed}),t.jsx(hn,{id:`progress-chart-${i}`,listadoProgreso:s.query,phaseLabel:i,listadoForUi:s.dataForUi}),t.jsx(kn,{listadoProgreso:s.query,listadoForUi:s.dataForUi,hideClaveColumn:r})]})};function Bn(e){var i,r,l,d;const a=(i=e.types_media)==null?void 0:i.map(c=>c.trim()).filter(Boolean),n=(r=e.locations)==null?void 0:r.map(c=>c.trim()),s=(l=e.status)==null?void 0:l.map(c=>c.trim().toLowerCase()).filter(Boolean),o=((d=e.search)==null?void 0:d.trim().toLowerCase())||void 0;return{mediosSet:a&&a.length>0?new Set(a):void 0,locationsSet:n&&n.length>0?new Set(n):void 0,statusSet:s&&s.length>0?new Set(s):void 0,searchLower:o,onlyDelayed:e.onlyDelayed===!0}}function Rn(e,a){const{mediosSet:n,locationsSet:s,statusSet:o,searchLower:i,onlyDelayed:r}=a;if(n){const l=Ze(e.tipo_medio)??"";if(!n.has(l))return!1}if(s){const l=Ze(e.ubicacion)??"";if(!s.has(l))return!1}if(o){const l=(e.estado??"").trim().toLowerCase();if(!o.has(l))return!1}if(r){const l=(e.estado??"").trim().toLowerCase();if(!ln.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 qn(e){const a=Object.fromEntries(oa.map(s=>[s,0]));for(const s of e){const o=cn(s.estado??"");o&&(a[o]+=1)}const n=e.length;return oa.map(s=>({name:s,data:[n>0?a[s]/n*100:0]}))}function zn(e,a){const n=Bn(a);if(!(n.mediosSet!==void 0||n.locationsSet!==void 0||n.statusSet!==void 0||n.searchLower!==void 0||n.onlyDelayed))return e;const o=e.data.filter(i=>Rn(i,n));return{data:o,grafico:qn(o)}}const Ra="__sin_ubicacion__";function qa(e,a){return String(e.label).localeCompare(String(a.label),"es",{sensitivity:"base"})}function yt(e,a,n){const s=new Map;return e.forEach(o=>{const i=a(o);!i||s.has(i)||s.set(i,{label:n?n(i):i,value:i})}),Array.from(s.values()).sort(qa)}function $n(e){return e.map(a=>a===Ra?"":a)}function Un(e){const a=yt(e,r=>Ze(r.tipo_medio)),n=e.some(r=>Ze(r.ubicacion)===null),s=yt(e,r=>Ze(r.ubicacion)),o=[...n?[{label:"Sin ubicación",value:Ra}]:[],...s].sort(qa),i=yt(e,r=>{var l;return((l=Ze(r.estado))==null?void 0:l.toLowerCase())??null},r=>dn(r));return{medios:a,plazas:o,estados:i}}const Hn=({isOpen:e,proyectoId:a,campaignName:n,onClose:s})=>{var B;const[r,l]=u.useState("preventa"),[d,c]=u.useState([]),[m,g]=u.useState([]),[x,p]=u.useState([]),[h,y]=u.useState(!1),[w,j]=u.useState(""),b=Qs(w,400),v=u.useMemo(()=>[{label:"Fase 1 (Preventa)",value:"preventa",leftSlot:ne.faHandHoldingHand},{label:"Fase 2 (Venta)",value:"venta",leftSlot:ne.faHandHoldingCircleDollar}],[]),O=()=>{c([]),g([]),p([]),y(!1)},H=()=>{l("preventa"),O(),j(""),s()},M=$=>{($==="preventa"||$==="venta")&&(l($),O(),j(""))},N=u.useMemo(()=>{const $=b.trim();if($)return $.length>=2?$:void 0},[b,2]),A=an({proyectoId:a,fase:r,enabled:e,filters:{}}),T=u.useMemo(()=>({types_media:d.length>0?d:void 0,locations:m.length>0?$n(m):void 0,status:x.length>0?x:void 0,search:N,onlyDelayed:h}),[d,m,x,N,h]),{medios:X,plazas:U,estados:L}=u.useMemo(()=>{var Y;const $=((Y=A.data)==null?void 0:Y.data)??[];return Un($)},[(B=A.data)==null?void 0:B.data]),I=u.useMemo(()=>{const $=A.data;return $?zn($,T):null},[A.data,T]),V=u.useMemo(()=>({value:w,onChange:j}),[w]),D=u.useMemo(()=>({query:A,dataForUi:I}),[A,I]),q=u.useMemo(()=>({mediosOptions:X,plazasOptions:U,estadosOptions:L,selectedMedios:d,selectedPlazas:m,selectedEstados:x,onlyDelayed:h,onChangeMedios:c,onChangePlazas:g,onChangeEstados:p,onChangeOnlyDelayed:y}),[X,U,L,d,m,x,h]);return t.jsx(f.Modal,{isOpen:e,onClose:H,size:"xl",title:"Progreso",tabs:v,defaultValueTab:"preventa",onChangeTab:M,iconConfig:{icon:ne.faBullhorn},cancelButtonText:"Cerrar",showCancelButton:!0,closeAtCancel:!0,onCancel:H,showSuccessButton:!1,children:t.jsx("div",{className:"tm-bg-surface-default tm-p-16",children:t.jsx(f.Modal.Body,{children:t.jsx(Ln,{campaignName:n,phase:r,search:V,listado:D,filters:q})})})})},Kn=({setPath:e,setProject:a})=>{var q;const[n,s]=u.useState([]),[o,i]=u.useState(!0),[r,l]=u.useState(0),[d,c]=u.useState(10),[m,g]=u.useState(0),[x,p]=u.useState(!1),[h,y]=u.useState(""),[w,j]=u.useState(0),{filters:b,defineFields:v}=Me(),{tasks_api:O,getImageOBP:H}=pe(),{user:M}=je(),N=u.useCallback(async(B,$)=>{var Y,z,re;try{i(!0);const ee={filters:{search:(b==null?void 0:b.search)??"",responsable:{idUser:M.id,responsableType:(Y=b==null?void 0:b.responsable)==null?void 0:Y.responsableType},ejecutivo:(b==null?void 0:b.ejecutivo)??"",cancelada:{$eq:!1}}},S=await O.get("/api/listado_campanias",{params:{pagination:{page:B,pageSize:$},...ee}}),K=be(S==null?void 0:S.data);s(K),g((re=(z=S==null?void 0:S.data)==null?void 0:z.meta)==null?void 0:re.total)}catch(ee){console.error("Error fetching data en Lista Campaña:",ee)}finally{i(!1)}},[b==null?void 0:b.ejecutivo,(q=b==null?void 0:b.responsable)==null?void 0:q.responsableType,b==null?void 0:b.search,O,M.id]),A=u.useCallback(async()=>{try{const B=await O.get("/api/obtener-comerciales");return[...aa].map(Y=>(Y.id==="ejecutivo"&&(Y.options=B.data.map(z=>({id:z.nombre,name:z.nombre}))),Y))}catch(B){return console.error("Error fetching salesman data:",B),[...aa]}},[O]);u.useEffect(()=>{(async()=>{const $=await A();v($)})()},[v,A]),u.useEffect(()=>{const B=Math.floor(r/d)+1;N(B,d)},[r,d,b,N]);const T=B=>{l(B.first),c(B.rows)},X=Math.floor(r/d)+1,U=u.useMemo(()=>(M.role??"").trim().toLowerCase()==="project manager",[M.role]),L=u.useCallback(B=>{var $;y((($=B.campania)==null?void 0:$.nombre)??B.nombre??""),j(Number(B.id)),p(!0)},[]),I=u.useMemo(()=>({label:"Ver progreso",leftSlot:ne.faEye,theme:"solid",color:"secondary",tooltip:"Ver progreso",onClick:B=>L(B)}),[L]),V=u.useMemo(()=>{const B=[{id:"nombre",header:"CAMPAÑA",accessor:$=>{var Y;return((Y=$.campania)==null?void 0:Y.nombre)??$.nombre??"-"},width:200,sortable:!1,filterable:!1,resizable:!1},{id:"inicia",header:"FECHA INICIO",accessor:$=>{var Y;return((Y=$.campania)==null?void 0:Y.inicia)??"-"},width:100,sortable:!1,filterable:!1,resizable:!1},{id:"termina",header:"FECHA FIN",accessor:$=>{var Y;return((Y=$.campania)==null?void 0:Y.termina)??"-"},width:100,sortable:!1,filterable:!1,resizable:!1},{id:"responsable",header:"RESPONSABLE",type:"primary",accessor:$=>{var Y,z;return((z=(Y=$.campania)==null?void 0:Y.responsable)==null?void 0:z.nombre)??"-"},width:150,sortable:!1,filterable:!1,resizable:!1,render:($,Y)=>{var G,k,P,W,E;const z=(G=Y.campania)==null?void 0:G.responsable,re=typeof $=="string"||typeof $=="number"?String($):(z==null?void 0:z.nombre)??"-",ee=(z==null?void 0:z.role)??"-",S=((W=(P=(k=z==null?void 0:z.imagen)==null?void 0:k.formats)==null?void 0:P.thumbnail)==null?void 0:W.url)||((E=z==null?void 0:z.imagen)==null?void 0:E.url)||"",K=S?H(S):z==null?void 0:z.nombre;return{name:re,...K?{avatar:K}:{},...ee?{subtitle:ee}:{}}}},{id:"alertas",header:"ALERTAS",accessor:$=>Ks($.alertas),width:200,minWidth:100,filterable:!1,sortable:!1,resizable:!1,contentAlign:"center",render:$=>t.jsx(Ws,{tags:Array.isArray($)?$:[]})}];return U&&B.push({id:"acciones",header:"ACCIONES",type:"button",sortable:!1,filterable:!1,resizable:!1,accessor:()=>I,width:190,minWidth:160}),B},[H,U,I]),D=u.useMemo(()=>(n??[]).map(B=>({...B,id:B.id})),[n]);return t.jsxs("div",{className:"tm-h-full tm-max-h-[100%] tm-overflow-y-auto tm-scrollbar-none",children:[t.jsx(f.Table,{columns:V,columnsLockable:!1,rows:D,loading:o,hoverable:!0,resizable:!1,pagination:{enabled:!0,currentPage:X,pageSize:d,total:m,pageSizes:[5,10,15,20,25,50],onPageChange:B=>l((B-1)*d),onPageSizeChange:B=>T({first:0,rows:B})},onRowClick:B=>{a({id:B.id,project:B.nombre}),e("kanban-campania")},empty:{type:"empty",title:"No hay campañas disponibles"}}),t.jsx(Hn,{isOpen:x,proyectoId:w,campaignName:h,onClose:()=>p(!1)})]})},za=u.createContext(null),Vn=()=>u.useContext(za),Gn=({children:e})=>{const a=u.useRef(null),n=u.useRef(null),s=()=>{var o;(o=n.current)==null||o.close()};return t.jsxs(t.Fragment,{children:[t.jsx(f.Button,{ref:a,leftSlot:ne.faFilter,color:"primary",theme:"solid",size:"sm",type:"button",children:"Filtrar"}),t.jsx(f.Popup,{ref:n,triggerRef:a,position:"bottom-right",offset:8,closeOnClickOutside:!0,closeOnEscape:!0,closeOnClick:!1,popoverArrow:!1,allowOverflow:!0,popupId:"tareas-filters-layout-popup",children:t.jsx(za.Provider,{value:s,children:e})})]})};function Wn(e,a=300,n={leading:!1,trailing:!0}){let s,o=null;return function(...i){const r=Date.now(),l=n.leading&&!o;clearTimeout(s),l&&e(...i),o=r,s=setTimeout(()=>{n.trailing&&(!n.leading||r-o>=a)&&(e(...i),o=null)},a)}}function Qn(e){return e!=null&&e.length?e.map(a=>({id:a.id,label:a.name,value:a.id})):[]}function Xn({field:e}){const{updateFilters:a,initialFilters:n}=Me(),s=u.useMemo(()=>Qn(e.options),[e.options]),o=n==null?void 0:n[e.id],i=o??"";return t.jsx(f.Dropdown,{field:{label:e.label,placeholder:"Selecciona una opción",size:"xs"},items:{options:s,idName:"id"},values:{value:i},menuSearch:{searchable:!0,searchPlaceholder:"Buscar…"},popover:{fullWidth:!0,absolute:!1,closeOnClickOutside:!0,dropdownId:`filter-layout-${e.id}`,popoverZIndex:1300},events:{onValueChange:r=>{a({name:e.id,value:String(r)})}}})}const Yn=()=>{const{fields:e,updateFilters:a,cleanFilters:n,applyFilters:s,initialFilters:o}=Me(),i=Vn();return t.jsxs("div",{className:"tm-flex tm-min-w-[280px] tm-max-w-[400px] tm-flex-col tm-gap-8 tm-p-8",children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-gap-2",children:[t.jsx("p",{className:"tm-m-0 tm-text-heading-h6 tm-font-heading-h6 tm-leading-heading-h6 tm-tracking-heading-h6 tm-text-primary",children:"Filtros"}),t.jsx(f.Button,{color:"secondary",size:"xxs",icon:ne.faXmark,type:"button",onClick:()=>{n(),i==null||i()},children:"Limpiar"})]}),t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-3",children:e==null?void 0:e.map((r,l)=>t.jsx("div",{className:"tm-relative",style:{zIndex:10-l},children:(r==null?void 0:r.type)==="select"?t.jsx("div",{className:"tm-relative tm-z-[10] tm-w-full",children:t.jsx(Xn,{field:r})}):t.jsxs(t.Fragment,{children:[t.jsx("p",{className:"z-[1] tm-text-xl",children:r.label}),t.jsx("input",{className:"tm-h-[30px] tm-w-full tm-rounded-lg tm-p-s tm-shadow-input",type:r.type,value:o==null?void 0:o[r==null?void 0:r.id],name:r.label.toLowerCase().replace(/ /g,"_"),onChange:Wn(d=>{var c,m;return a({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))}),t.jsx(f.Button,{color:"primary",size:"xs",type:"button",fullWidth:!0,onClick:()=>{s(),i==null||i()},children:"Filtrar"})]})},Rt=e=>new Intl.DateTimeFormat("es-MX",{month:"long"}).format(e);function Jn(e){const a=["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],n=new Date(e).getDay();return a[n]}const da=e=>{let a=e||new Date,n=a.getDate(),s=Rt(a.getMonth()).slice(0,3),o=a.getFullYear().toString().slice(-2),i=Jn(a).slice(0,3);return`${i.charAt(0).toUpperCase()+i.slice(1)} ${n} ${s.charAt(0).toUpperCase()+s.slice(1)} ${o}`},qt=(e,a)=>({...e,image:e.image?`${a}${e.image}`:""}),ot=e=>{var a,n;return e?(a=e.responsable)!=null&&a.nombre?e.responsable.nombre:(n=e.equipo)!=null&&n.nombre?e.equipo.nombre:null:null};class Zn{static toCampaignTasks(a){var i,r,l,d,c,m,g,x,p,h,y,w,j,b,v;const n=ot(a==null?void 0:a.id_t_requerida),s=ot(a==null?void 0:a.tarea_padre);let o=[];return a!=null&&a.responsable&&o.push({id:a.responsable.id,name:a.responsable.nombre,image:(c=(d=(l=(r=(i=a.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=a.responsable.userOBP)==null?void 0:m.role)||{id:0,name:""}}),(g=a==null?void 0:a.equipo)!=null&&g.miembros&&a.equipo.miembros.forEach(O=>{var H,M,N,A,T;o!=null&&o.find(X=>X.id===O.idUser.id)||O.idUser&&o.push({id:O.idUser.id,name:O.idUser.nombre,image:(A=(N=(M=(H=O==null?void 0:O.userOBP)==null?void 0:H.imagen)==null?void 0:M.formats)==null?void 0:N.thumbnail)==null?void 0:A.url,role:((T=O.userOBP)==null?void 0:T.role)||{id:0,name:""}})}),{paused:a==null?void 0:a.pausada,isPrincipalTask:(a==null?void 0:a.tarea_principal)??!1,orden:(a==null?void 0:a.orden)??null,id:(a==null?void 0:a.id)??null,task:(a==null?void 0:a.texto_corto)??null,status:(a==null?void 0:a.estatus)??null,difficulty:(a==null?void 0:a.nivel_dificultad)??null,priority:(a==null?void 0:a.prioridad)??0,endDate:new Date((a==null?void 0:a.ffin)??null),startDate:new Date((a==null?void 0:a.finicio)??null),users:o,repeatsToDo:(a==null?void 0:a.repeticiones)??null,repeats:(a==null?void 0:a.repeticiones_realizadas)??null,comments:((x=a==null?void 0:a.comentarios)==null?void 0:x.length)??null,willBePaused:a==null?void 0:a.es_pausable,nameProject:((p=a==null?void 0:a.proyecto)==null?void 0:p.nombre)??null,idProject:((h=a==null?void 0:a.proyecto)==null?void 0:h.id)??null,medioName:(a==null?void 0:a.nombre_medio)??null,statusRequiredTask:((y=a==null?void 0:a.id_t_requerida)==null?void 0:y.estatus)??null,nameRequiredTask:((w=a==null?void 0:a.id_t_requerida)==null?void 0:w.texto_corto)??null,nameRequiredTaskResponsible:n,name_father_required_task:((j=a==null?void 0:a.tarea_padre)==null?void 0:j.texto_corto)??null,name_father_required_task_responsible:s,responsible:((b=a==null?void 0:a.responsable)==null?void 0:b.id)??null,tasks:((v=a==null?void 0:a.tareas)==null?void 0:v.map(O=>({id:O.id,name:O.texto_corto,status:O.estatus})))??null,atraso:(a==null?void 0:a.atraso)??null,categoria:(a==null?void 0:a.categoria)??null,...(a==null?void 0:a.cambio_arte)&&{cambio_arte:a==null?void 0:a.cambio_arte}}}}const eo=async({filters:e,tasks_api:a,project:n})=>{try{const s=await a.get("/api/listado_tareas_flujo",{params:{...e,project:{id:n},includeAllTasks:!0,populate:"*",cancelada:!1}}),o=be(s.data.tareas),i=Array.isArray(o)?o:[o],r=new Set;if(i.forEach(l=>{var d;(d=l==null?void 0:l.id_t_requerida)!=null&&d.id&&r.add(l.id_t_requerida.id)}),r.size>0){const l=Array.from(r),d=Ee.stringify({filters:{id:{$in:l}},populate:{responsable:{fields:["id","nombre"]},equipo:{fields:["id","nombre"]}}},{encodeValuesOnly:!0});try{const c=await a.get(`/api/tareas?${d}`),m=be(c.data.data||c.data),g=Array.isArray(m)?m:[m],x=new Map(g.map(p=>[p.id,p]));i.forEach(p=>{var h;if((h=p==null?void 0:p.id_t_requerida)!=null&&h.id){const y=x.get(p.id_t_requerida.id);y&&(p.id_t_requerida={...p.id_t_requerida,responsable:y.responsable||null,equipo:y.equipo||null})}})}catch{}}return i.map(Zn.toCampaignTasks)}catch(s){console.log(s)}},$a=u.createContext({}),to=({children:e,project:a})=>{var j;const[n,s]=u.useState([]),[o,i]=u.useState(!1),[r,l]=u.useState([]),{tasks_api:d}=pe(),{filters:c}=Me(),{user:m}=je(),[g,x]=u.useState({owner:{user:m.id,config:((j=c==null?void 0:c.owner)==null?void 0:j.config)??"yo_y_mis_equipos"},project:{id:a}});u.useEffect(()=>{var b;if(Object.keys(c).length>0){const v={...c,owner:{user:m.id,config:((b=c==null?void 0:c.owner)==null?void 0:b.config)??"yo_y_mis_equipos"},project:{id:a}};x(v)}},[c,m.id,a]);const p=le.useQuery({queryKey:["tasksProject",g,a],queryFn:()=>{const b={...g,taskName:c==null?void 0:c.taskName,owner:{...g.owner,config:g.owner.config||"yo_y_mis_equipos"}};return eo({filters:b,project:a,tasks_api:d})},refetchOnWindowFocus:!1}),h=b=>{s(v=>[...v,b])},y=b=>{l(v=>v.includes(b)?v.filter(O=>O!==b):[...v,b])},w=a??null;return t.jsx($a.Provider,{value:{tasksProject:p,selectedTasks:n,projectID:w,openTasks:r,selectTask:h,filtersToSend:g,openTask:y,isRefetching:o,project:a,filters:c,setIsRefetching:i},children:e})},at=()=>u.useContext($a),Ua=u.createContext(void 0),ma=()=>({selectedTaskIds:[],baseColumn:null,isFullColumnSelected:!1});function Ha({children:e,invalidateAfterBulkSuccess:a}){const[n,s]=u.useState(ma),[o,i]=u.useState(null),[r,l]=u.useState(!1),{selectedTaskIds:d,baseColumn:c,isFullColumnSelected:m}=n,g=d.length>0,x=c!==null,p=u.useCallback(()=>{s(ma()),i(null),l(!1)},[]),h=u.useCallback(()=>{s(b=>({...b,selectedTaskIds:[],isFullColumnSelected:!1}))},[]),y=u.useCallback((b,v)=>{v!=="Completadas"&&s(O=>{if(O.baseColumn&&O.baseColumn!==v)return O;const H=new Set(O.selectedTaskIds);return H.has(b)?(H.delete(b),{selectedTaskIds:[...H],baseColumn:O.baseColumn,isFullColumnSelected:!1}):(H.add(b),{selectedTaskIds:[...H],baseColumn:O.baseColumn??v,isFullColumnSelected:!1})})},[]),w=u.useCallback(async(b,v)=>{if(b!=="Completadas"){l(!0);try{const O=await v(),H=[...new Set(O)];s(M=>M.baseColumn&&M.baseColumn!==b?M:{selectedTaskIds:H,baseColumn:M.baseColumn??b,isFullColumnSelected:H.length>0})}finally{l(!1)}}},[]);u.useEffect(()=>{d.length===0&&c!==null&&p()},[d.length,c,p]);const j=u.useMemo(()=>({selectedTaskIds:d,baseColumn:c,isMultiSelectActive:g,isBulkSessionActive:x,isFullColumnSelected:m,pendingTargetStatus:o,isBulkLoading:r,invalidateAfterBulkSuccess:a,toggleTaskSelection:y,deselectAllSelectedTasks:h,exitBulkSelectionMode:p,selectEntireColumn:w,setPendingTargetStatus:i,setIsBulkLoading:l}),[d,c,g,x,m,o,r,a,y,h,p,w,i,l]);return t.jsx(Ua.Provider,{value:j,children:e})}function zt(){return u.useContext(Ua)}const ao=()=>t.jsxs("div",{className:"tm-flex tm-h-[150px] tm-w-full tm-animate-pulse tm-flex-col tm-gap-[50px] tm-rounded-md tm-bg-gray-200 tm-p-4",children:[t.jsxs("div",{className:"tm-flex tm-h-[30px] tm-gap-3",children:[t.jsx("div",{className:"tm-h-full tm-w-[30px] tm-min-w-[30px] tm-rounded-full tm-bg-gray-300"}),t.jsx("div",{className:"tm-h-full tm-w-full tm-bg-gray-300"}),t.jsx("div",{className:"tm-h-full tm-w-[30px] tm-min-w-[30px] tm-rounded-full tm-bg-gray-300"})]}),t.jsxs("div",{className:"tm-flex tm-h-[30px] tm-w-full tm-justify-between tm-gap-[50px]",children:[t.jsx("div",{className:"tm-h-[30px] tm-w-full tm-bg-gray-300"}),t.jsx("div",{className:"tm-h-[30px] tm-w-full tm-bg-gray-300"})]})]});class Ka{static toAtrasoReasons(a){return{id:a.id,motivo_imj:a.motivo_imj,categoria:a.categoria??null}}}const so=async({tasks_api:e})=>{try{const a=await e.get("/api/motivos",{params:{populate:{categoria:{fields:["id","nombre","tipo"]}},filters:{tipo:{$eq:"atraso"}}}});return be(a.data).map(Ka.toAtrasoReasons)}catch(a){throw console.log("Error al obtener los motivos de atraso",a),`Error al obtener los motivos de atraso: ${a}`}},Va=({enabled:e=!1}={})=>{const{tasks_api:a}=pe(),{user:n}=je(),s=le.useQueryClient(),{filters:o,path:i}=Me(),{data:r,isLoading:l}=le.useQuery({queryKey:["atraso_reasons"],queryFn:()=>so({tasks_api:a}),staleTime:1e3*60*60*24,enabled:e}),d=async()=>{const b=await a.get("/api/motivos",{params:{filters:{tipo:{$eq:"atraso"}}}});return be(b.data).map(Ka.toAtrasoReasons)},c=async({taskId:b,motivoId:v,projectID:O})=>{try{return(await a.post("/api/atrasos",{data:{inicio:new Date,fin:null,motivo:v,proyecto:O,tarea:b,creada_por:n==null?void 0:n.id}})).data}catch(H){console.log("error",H)}},m=async b=>{try{return(await a.delete(`/api/atrasos/${b}`)).data}catch(v){console.log("error",v)}},g=async b=>{try{return(await a.put(`/api/atrasos/${b}`,{data:{fin:new Date}})).data}catch(v){console.log("error",v)}},x=async({taskId:b,projectID:v,motivo:O})=>{await y({taskId:b,motivoId:O,projectID:v})},p=async b=>{await w(b)},h=async b=>{await j(b)},{mutateAsync:y}=le.useMutation({mutationFn:c,onSuccess:()=>{f.messageService.success("Atraso registrado correctamente"),i==="kanban-general"&&(s.invalidateQueries({queryKey:["to_do_tasks",o]}),s.invalidateQueries({queryKey:["working_tasks",o]})),i==="kanban-campania"&&s.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{f.messageService.error("Error al registrar el atraso")}}),{mutateAsync:w}=le.useMutation({mutationFn:m,onSuccess:()=>{f.messageService.success("Atraso eliminado correctamente"),i==="kanban-general"&&(s.invalidateQueries({queryKey:["to_do_tasks"]}),s.invalidateQueries({queryKey:["working_tasks"]}),s.invalidateQueries({queryKey:["done_tasks"]})),i==="kanban-campania"&&s.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{f.messageService.error("Error al eliminar el atraso")}}),{mutateAsync:j}=le.useMutation({mutationFn:g,onSuccess:()=>{f.messageService.success("Atraso finalizado correctamente")},onError:()=>{f.messageService.error("Error al finalizar el atraso")}});return{atrasoReasons:r,isLoading:l,createAtraso:x,getAtrasoReasons:d,deleteAtraso:p,finalizarAtraso:h}},He=()=>{const{tasks_api:e}=pe(),{user:a}=je(),{filters:n,path:s}=Me(),o=le.useQueryClient(),{projectID:i}=at(),{finalizarAtraso:r}=Va({enabled:!1}),l=async({id:L})=>(await e.put(`/api/tareas/${L}`,{data:{estatus:1,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,d=async({id:L})=>(await e.put(`/api/tareas/${L}`,{data:{estatus:0,responsable:a==null?void 0:a.id,updated_by:a==null?void 0:a.id}})).data,c=async({id:L,idAtraso:I})=>{const V=await e.post("/api/terminarTarea",{id_task:L,ended_at:new Date().toISOString(),id_user:a==null?void 0:a.id});return await r(I),V.data},m=async({id:L,repeats:I})=>(await e.put(`/api/tareas/${L}`,{data:{repeticiones_realizadas:I,updated_by:a==null?void 0:a.id}})).data,g=async({id:L,motiveId:I})=>{try{const V=await e.post("/api/pausarTarea",{taskId:L,userId:a==null?void 0:a.id,motivoId:I});return f.messageService.success("Tarea pausada correctamente"),V.data}catch(V){f.messageService.error(`Error al pausar la tarea: ${V}`)}},x=async({id:L})=>{try{const I=await e.post("/api/reanudarTarea",{taskId:L});return f.messageService.success("Tarea reanudada correctamente"),I.data}catch(I){f.messageService.error(`Error al reanudar la tarea: ${I}`)}},p=async({id:L,idNewResponsible:I,typeOfSelect:V})=>{let D={updated_by:a==null?void 0:a.id};return V==="responsible"&&(D={...D,responsable:I}),V==="team"&&(D={...D,responsable:null,equipo:I}),(await e.put(`/api/tareas/${L}`,{data:D})).data},h=async({id:L,data:I,user:V})=>{try{return(await e.put(`/api/tareas/${L}`,{data:{...I,updated_by:V==null?void 0:V.id}})).data}catch(D){console.error("Error updating the element:",D)}},y=async({id:L})=>{await b({id:L})},w=async({id:L,data:I,user:V})=>{await j({id:L,data:I,user:V})},{mutateAsync:j}=le.useMutation({mutationFn:h,onSuccess:()=>{f.messageService.success("Tarea actualizada correctamente");const L={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[L[s],n]}),o.invalidateQueries({queryKey:["done_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(I){console.error("Error invalidating queries:",I)}},onError:L=>{console.error("Failed to update the task.",L)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]})}}),{mutateAsync:b}=le.useMutation({mutationFn:l,onSuccess:()=>{const L={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[L[s],n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(I){console.error("Error updating the element:",I)}},onError:L=>{console.error("Failed to update the task.",L)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:v}=le.useMutation({mutationFn:c,onSuccess:()=>{const L={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o.setQueryData([L[s],n],I=>{console.log({oldData:I})}),s==="kanban-general"&&(o.invalidateQueries({queryKey:[L[s],n]}),o.invalidateQueries({queryKey:["done_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(I){console.error("Error invalidating queries:",I)}},onError:L=>{console.error("Failed to update the task.",L)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["done_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:O}=le.useMutation({mutationFn:m,onSuccess:()=>{const L={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[L[s],n]}),o.invalidateQueries({queryKey:["done_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(I){console.error("Error invalidating queries:",I)}},onError:L=>{console.error("Failed to update the task.",L)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["done_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:H}=le.useMutation({mutationFn:p,onSuccess:()=>{const L={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[L[s],n]}),o.invalidateQueries({queryKey:["done_tasks",n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(I){console.error("Error invalidating queries:",I)}},onError:L=>{console.error("Failed to reassign the task.",L)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["done_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:M}=le.useMutation({mutationFn:d,onSuccess:()=>{const L={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s==="kanban-general"&&(o.invalidateQueries({queryKey:[L[s],n]}),o.invalidateQueries({queryKey:["working_tasks",n]})),s==="kanban-campania"&&(o.invalidateQueries({queryKey:["tasksProject"]}),o.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(I){console.error("Error updating the element:",I)}},onError:L=>{console.error("Failed to update the task.",L)},onMutate:async()=>{await o.cancelQueries({queryKey:["working_tasks"]}),await o.cancelQueries({queryKey:["to_do_tasks"]})}});return{updatingTask:w,updateTask:h,startTask:async({id:L})=>{await M({id:L})},startWorking:y,completeTask:async({id:L,idAtraso:I})=>{await v({id:L,idAtraso:I})},reasignResponsible:async({id:L,idNewResponsible:I,typeOfSelect:V})=>{await H({id:L,idNewResponsible:I,typeOfSelect:V})},updateUnitys:async({repeats:L,id:I})=>{await O({repeats:L,id:I})},pauseTask:async({id:L,motiveId:I})=>{console.log({taksId:L,motivoId:I,user:a==null?void 0:a.id})},postPauseTask:g,postReanudeTask:x}},no="Project Manager";function ut(e,a){return e===no?!0:Number.isFinite(a)?a===0:!1}function Fe({trigger:e,children:a,enabled:n=!0,position:s="top",offset:o=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 n?t.jsxs("span",{className:l,children:[t.jsx("span",{ref:c,className:d,children:e}),t.jsx(f.Popover,{triggerRef:c,openOnHover:!0,position:s,offset:o,closeOnClick:i,popoverArrow:r,children:a})]}):t.jsx(t.Fragment,{children:e})}const De=({imageUrl:e="https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png",alt:a="avatar",size:n="s"})=>{const s={xs:"tm-w-[24px] tm-h-[24px] tm-min-w-[24px] tm-min-h-[24px]",s:"tm-w-[28px] tm-h-[28px] tm-min-w-[28px] tm-min-h-[28px]",m:"tm-w-[32px] tm-h-[32px] tm-min-w-[32px] tm-min-h-[32px]",l:"tm-w-[36px] tm-h-[36px] tm-min-w-[36px] tm-min-h-[36px]",xl:"tm-w-[40px] tm-h-[40px] tm-min-w-[40px] tm-min-h-[40px]",xxl:"tm-w-[44px] tm-h-[44px] tm-min-w-[44px] tm-min-h-[44px]"}[n];return t.jsx("img",{src:e===""?"https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png":e,alt:a??"avatar",className:`${s} tm-bg-surface-default tm-rounded-full tm-border-2 tm-border-default`})},ua=({trigger:e,user:a,showUser:n=!0})=>t.jsx(Fe,{trigger:e,enabled:n,children:t.jsxs("div",{className:"tm-flex tm-h-fit tm-w-fit tm-items-center tm-gap-2 tm-bg-bg-card tm-p-2",children:[t.jsx(De,{imageUrl:a.image??"",alt:a.name}),t.jsx("p",{className:"tm-text-sm tm-font-bold tm-text-texts-subtext",children:a.name})]})}),oo=({options:e,onselect:a})=>{const[n,s]=u.useState(""),o=[...e].filter(i=>i.name.toLowerCase().includes(n.toLowerCase()));return t.jsxs("div",{className:"tm-h-fit tm-w-full tm-min-w-max",children:[t.jsx(f.Input,{size:"sm",fullWidth:!0,leftSlot:ne.faSearch,placeholder:"Buscar",value:n,onValueChange:s}),t.jsx("div",{className:"tm-border-cards tm-flex tm-max-h-[120px] tm-min-w-max tm-flex-col tm-gap-s tm-overflow-y-auto tm-rounded-lg tm-bg-bg-card tm-p-2 tm-mt-2",children:o.map(i=>t.jsxs("button",{type:"button",onClick:()=>{a(i)},className:"tm-flex tm-min-w-full tm-max-w-[200px] tm-cursor-pointer tm-items-center tm-gap-s hover:tm-bg-primary-light",children:[i.image&&t.jsx(De,{imageUrl:i.image,alt:i.name}),t.jsx("p",{className:"tm-min-w-0 tm-text-left tm-text-[14px] tm-truncate tm-py-m tm-font-normal tm-text-texts-subtext",children:i.name})]},i.id??i.name))})]})};class ro{static toDomain(a){return{id:a.id,name:a.nombre,color:a.color}}}const io=()=>{const{tasks_api:e}=pe();return{teams:le.useQuery({queryKey:["teams","all"],queryFn:async()=>{const n=await e.get("/api/equipos");return be(n.data).map(ro.toDomain)},refetchOnWindowFocus:!1})}};class $t{static toUsers(a){var n,s,o;return{id:a.id,name:a.nombre,image:(o=(s=(n=a.imagen)==null?void 0:n.formats)==null?void 0:s.thumbnail)==null?void 0:o.url,tasksUser:{email:a.tasksUser.email,id:a.tasksUser.id,nombre:a.tasksUser.nombre},role:a.role}}static toUsersV2(a){var n,s,o;return{id:a.id,name:a.nombre,image:(o=(s=(n=a.imagen)==null?void 0:n.formats)==null?void 0:s.thumbnail)==null?void 0:o.url,role:a.role}}static toUsersWithIndex(a){var s,o,i;const n={};for(const r of a)n[r.email]={...r,image:(i=(o=(s=r.imagen)==null?void 0:s.formats)==null?void 0:o.thumbnail)==null?void 0:i.url};return n}}const lo=async({tasks_api:e})=>{try{const a=await e.get("/api/getAllOBPusersMembers");return be(a.data).map($t.toUsers)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},co=async({tasks_api:e})=>{try{const a={filters:{$and:[{role:{name:{$in:["Project Manager","Operation Manager","Administrador"]}}},{blocked:{$eq:!1}}]}},n=Ee.stringify(a,{encodeValuesOnly:!0}),s=await e.get(`/api/users?${n}`),i=be(s.data).map(d=>d.email),r=await e.get(`/api/getAllOBPusers?filters[name][$in]=${i}`);return be(r.data).map($t.toUsersV2)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},mo=async({users:e})=>{try{const a=be(e);return $t.toUsersWithIndex(a)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},uo=()=>{const{tasks_api:e}=pe();return{users:le.useQuery({queryKey:["users"],queryFn:()=>lo({tasks_api:e}),staleTime:1e3*60*60*24})}},po=()=>{const{tasks_api:e}=pe();return{users:le.useQuery({queryKey:["allUsers"],queryFn:()=>co({tasks_api:e}),staleTime:1e3*60*60*24})}},Ga=({users:e,onClick:a,responsible:n,role:s,status:o})=>{const{getOBPUrlApi:i}=pe(),r=u.useRef(null),l=u.useRef(null),d=u.useId(),[c,m]=u.useState("team"),{teams:g}=io(),{users:x}=uo(),p=ut(s,o),h=()=>n?null:e.length>3&&t.jsx(Fe,{position:"top",popoverArrow:!1,triggerWrapperClassName:"tm-inline-flex tm-items-center",trigger:t.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:t.jsx(f.Text,{children:`+${e.length-3}`})}),children:t.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((b,v)=>t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8 ",children:[t.jsx(De,{imageUrl:b.image??"",alt:b.name},v),t.jsx(f.Text,{children:b.name})]},v))})}),y=()=>{if(n){const b=e.find(v=>v.id===n);return t.jsx("div",{children:p?t.jsx(f.Tooltip,{label:(b==null?void 0:b.name)??"",position:"top",children:t.jsx(De,{imageUrl:b==null?void 0:b.image,alt:b==null?void 0:b.name},n)}):t.jsx(ua,{trigger:t.jsx(De,{imageUrl:b==null?void 0:b.image,alt:b==null?void 0:b.name},n),user:b,showUser:!0})})}return(e==null?void 0:e.length)>0&&e.slice(0,3).map((b,v)=>t.jsx("div",{className:`${v===0?"":"tm-ml-[-8px]"}`,children:p?t.jsx(f.Tooltip,{label:b.name,position:"top",children:t.jsx(De,{imageUrl:b.image,alt:b.name})}):t.jsx(ua,{trigger:t.jsx(De,{imageUrl:b.image,alt:b.name}),user:b,showUser:!0})},b.id||v))},w=()=>{const b=[{id:"team",label:"Equipo"},{id:"responsible",label:"Responsable"}];return t.jsx("div",{className:"tm-flex tm-w-full tm-justify-center tm-gap-l tm-font-bold tm-text-texts-placeholder",children:b.map((v,O)=>t.jsx("button",{type:"button",className:`tm-w-full tm-border-texts-placeholder tm-text-center tm-text-[10px] ${c===v.id?"tm-text-primary-pastel":""} ${O===b.length-1?"tm-border-r-0":" tm-border-r-2"}`,onClick:()=>m(v.id),children:v.label},v.id))})},j=()=>t.jsxs("div",{className:"tm-border-cards tm-flex tm-max-h-[200px] tm-flex-col tm-gap-m tm-overflow-y-hidden tm-rounded-lg tm-bg-bg-card tm-p-2",style:{boxShadow:"0px 2px 16px 0px rgba(0, 0, 0, 0.25)"},children:[w(),t.jsx(oo,{options:c==="team"?((g==null?void 0:g.data)??[]).map(b=>({id:b.id,name:b.name,image:""})):((x==null?void 0:x.data)??[]).map(b=>qt(b,i())),onselect:b=>{var v,O;(v=l.current)==null||v.close(),a((O=b.tasksUser)==null?void 0:O.id,c)}})]});return e.length===0?p?t.jsxs(t.Fragment,{children:[t.jsx("span",{ref:r,className:"tm-inline-flex tm-cursor-pointer tm-items-center",children:t.jsx(f.Icon,{name:ne.faUser,size:"xs",color:"current"})}),t.jsx(f.Popover,{ref:l,triggerRef:r,position:"bottom-left",offset:8,closeOnClick:!1,closeOnClickOutside:!0,closeOnEscape:!0,popoverArrow:!1,popupId:`assign-users-${d}`,children:j()})]}):t.jsx("span",{className:"tm-inline-flex tm-items-center",children:t.jsx(f.Icon,{name:ne.faUser,size:"xs",color:"current"})}):t.jsxs(t.Fragment,{children:[t.jsxs("span",{ref:r,className:"tm-flex tm-cursor-pointer tm-items-center",children:[y(),h()]}),p&&t.jsx(f.Popover,{ref:l,triggerRef:r,position:"bottom-left",offset:8,closeOnClick:!1,closeOnClickOutside:!0,closeOnEscape:!0,popoverArrow:!1,popupId:`assign-users-avatars-${d}`,children:j()})]})},fo=[1,2,3,4,5],jt={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 pa(e){const a=Number(e);if(e==null||Number.isNaN(a)||!Number.isFinite(a))return 1;let n=Math.trunc(a);return n===0&&(n=1),n<1||n>5?1:n}const Ut=({difficulty:e,id:a,withLabel:n=!1,canEdit:s=!0})=>{const{updatingTask:o}=He(),i=u.useId().replace(/:/g,""),[r,l]=u.useState(null),{user:d}=je(),[c,m]=u.useState(()=>pa(e));u.useEffect(()=>{m(pa(e))},[e]);const g={title:"Sin dato",color:"primary"},x=jt[c]??g,p=x.title??"Sin dato",h=()=>{if(!r)return null;const w=({level:j,text:b,itemColor:v})=>t.jsxs("button",{type:"button",onClick:async()=>{l(null),await o({id:a,data:{nivel_dificultad:j},user:d==null?void 0:d.id}),m(j)},className:"tm-flex tm-items-center tm-gap-m tm-px-l tm-py-s hover:tm-bg-primary-light",children:[t.jsx(f.Icon,{name:ne.faRhombus,size:"xs",color:v}),t.jsx(f.Text,{type:"body",size:"sm",color:v,children:b})]});return Ft.createPortal(t.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:fo.map(j=>t.jsx(w,{level:j,text:jt[j].title,itemColor:jt[j].color},j))}),document.body)},y=w=>{w.stopPropagation()};return s?t.jsxs("div",{className:"tm-relative",onClick:y,onPointerDown:y,children:[t.jsxs("label",{htmlFor:i,onBlur:()=>{l(null)},className:"tm-flex tm-cursor-pointer tm-items-center tm-gap-2 active:tm-opacity-50",children:[t.jsx(Fe,{trigger:t.jsx(f.Icon,{name:ne.faRhombus,size:"sm",color:x.color}),children:t.jsx("div",{className:"tm-px-8 tm-py-4",children:t.jsx(f.Text,{color:x.color,children:`Dificultad: ${p}`})})}),n&&t.jsx(f.Text,{as:"span",color:x.color,children:p})]}),t.jsx("button",{id:i,type:"button",onClick:w=>{w.stopPropagation(),l(r?null:{x:w.clientX,y:w.clientY})},className:"tm-hidden"}),t.jsx(h,{})]}):t.jsxs("div",{className:"tm-relative tm-flex tm-items-center tm-gap-2",onClick:y,onPointerDown:y,children:[t.jsx(Fe,{trigger:t.jsx(f.Icon,{name:ne.faRhombus,size:"sm",color:x.color}),children:t.jsx("div",{className:"tm-px-8 tm-py-4",children:t.jsx(f.Text,{color:x.color,children:`Dificultad: ${p}`})})}),n&&t.jsx(f.Text,{as:"span",color:x.color,className:"tm-text-lg tm-font-normal",children:p})]})},Ht=({priority:e,id:a,withLabel:n=!1,canEdit:s=!0})=>{const{updatingTask:o}=He(),i=u.useId().replace(/:/g,""),[r,l]=u.useState(null),{user:d}=je(),[c,m]=u.useState(e);u.useEffect(()=>{m(e)},[e]);const g={0:{title:"Normal",color:"brand"},1:{title:"Baja",color:"success"},2:{title:"Media",color:"warning"},3:{title:"Alta",color:"danger"}},x={title:"Sin prioridad",color:"primary"},h=(()=>{const b=c;if(typeof b!="number"||!Number.isFinite(b))return x;const v=Math.trunc(b);return v<0||v>3?x:g[v]??x})(),y=h.title??"Sin prioridad",w=()=>{if(!r)return null;const b=({priorityTask:v,text:O,itemColor:H})=>t.jsxs("button",{type:"button",onClick:async()=>{l(null),await o({id:a,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:[t.jsx(f.Icon,{name:ne.faFlag,size:"xs",color:H}),t.jsx(f.Text,{type:"body",size:"sm",color:H,children:O})]});return Ft.createPortal(t.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(g).map((v,O)=>t.jsx(b,{priorityTask:O,text:v.title,itemColor:v.color},O))}),document.body)},j=b=>{b.stopPropagation()};return s?t.jsxs("div",{className:"tm-relative",onClick:j,onPointerDown:j,children:[t.jsxs("label",{onBlur:()=>{l(null)},htmlFor:i,className:"tm-flex tm-cursor-pointer tm-items-center tm-gap-2 active:tm-opacity-50",children:[t.jsx(Fe,{trigger:t.jsx(f.Icon,{name:ne.faFlag,size:"sm",color:h.color}),children:t.jsx("div",{className:"tm-px-8 tm-py-4",children:t.jsx(f.Text,{color:h.color,children:`Prioridad: ${y}`})})}),n&&t.jsx(f.Text,{as:"span",color:h.color,className:" tm-font-normal",children:y})]}),t.jsx("button",{id:i,type:"button",onClick:b=>{b.stopPropagation(),l(r?null:{x:b.clientX,y:b.clientY})},className:"tm-hidden"}),t.jsx(w,{})]}):t.jsxs("div",{className:"tm-relative tm-flex tm-items-center tm-gap-2",onClick:j,onPointerDown:j,children:[t.jsx(Fe,{trigger:t.jsx(f.Icon,{name:ne.faFlag,size:"sm",color:h.color}),children:t.jsx("div",{className:"tm-px-8 tm-py-4",children:t.jsx(f.Text,{color:h.color,children:`Prioridad: ${y}`})})}),n&&t.jsx(f.Text,{as:"span",color:h.color,className:"tm-text-lg tm-font-normal",children:y})]})};function go(e,a){return((e==null?void 0:e.map(s=>{var o;return{id:s.id,nombre:s.motivo_imj??"",categoria:(o=s.categoria)==null?void 0:o.nombre}}).filter(s=>s.categoria===a))??[]).filter(s=>typeof s.id=="number"&&!Number.isNaN(s.id)&&s.nombre.length>0).map(s=>({id:s.id,nombre:s.nombre}))}function ho(e){return e.map(a=>({id:a.id,label:a.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 xo(e,a){const n=[];return e===0&&n.push({id:Ue.TO_SECOND,label:"Mover a trabajando",icon:Se.faArrowRight}),e===1&&n.push({id:Ue.TO_SECOND,label:"Mover a completada",icon:Se.faArrowRight},{id:Ue.TO_FOURTH,label:"Mover por hacer",icon:Se.faArrowLeft}),a?n.push({id:Ue.TO_THIRD,label:"Eliminar atraso"}):n.push({id:Ue.TO_THIRD,label:"Agregar atraso"}),n}function bo(e){return e===0?{title:"Mover a trabajando"}:{title:"Mover a completada"}}function yo(){return{title:"Mover a por hacer"}}function fa({copy:e,onMove:a}){return t.jsxs("div",{className:"tm-flex tm-h-fit tm-w-max tm-max-w-[280px] tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:[t.jsx("p",{className:"tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_medium",children:e.title}),t.jsx(f.Button,{type:"button",fullWidth:!0,size:"xs",color:"primary",onClick:a,children:"Mover"})]})}const jo=({status:e,nameRequiredTask:a,statusRequiredTask:n,id:s,statusLateTask:o=null,projectID:i,atrasoId:r,categoria:l,disabled:d=!1})=>{const c=u.useRef(null),m=u.useRef(null),g=u.useRef(null),{startWorking:x,completeTask:p,startTask:h}=He(),y=u.useRef(!1),[w,j]=u.useState(!1),[b,v]=u.useState(null),[O,H]=u.useState("first"),M=a!==""&&n===2,[N,A]=u.useState(null),{atrasoReasons:T,isLoading:X,createAtraso:U,deleteAtraso:L}=Va({enabled:!0}),[I,V]=u.useState(null),D=u.useCallback(()=>{var S;(S=c.current)==null||S.close()},[]);u.useEffect(()=>{o&&H("third")},[o]),u.useEffect(()=>{if(!w)return;const S=()=>{D()};return window.addEventListener("scroll",S,!0),document.addEventListener("scroll",S,!0),()=>{window.removeEventListener("scroll",S,!0),document.removeEventListener("scroll",S,!0)}},[w,D]);const q=S=>{H(S),S==="second"?v(e===0?"Trabajando":"Completadas"):S==="fourth"&&v("Por hacer")},B=()=>{if(y!=null&&y.current)return t.jsx("div",{className:"tm-hover:bg-primary-light tm-flex tm-h-fit tm-w-max tm-translate-x-0 tm-items-center tm-gap-2 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:t.jsx("p",{className:"tm-font-regular tm-text-sm tm-font-normal tm-text-primary-pastel",children:"Moviendo..."})});const S=xo(e,r);return t.jsx("div",{className:"tm-flex tm-h-fit tm-w-max tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:t.jsx(f.ListBase,{variant:"default",list:{items:S},events:{onItemClick:K=>{switch(K.id){case Ue.TO_SECOND:q("second");break;case Ue.TO_THIRD:q("third");break;case Ue.TO_FOURTH:q("fourth");break}}}})})},$=()=>t.jsx(fa,{copy:bo(e),onMove:()=>{y.current=!0,b==="Trabajando"?x({id:s}):b==="Por hacer"?h({id:s}):p({id:s,idAtraso:r}),D()}}),Y=()=>{if(X)return t.jsx("div",{children:"Cargando motivos..."});const S=go(T,l==null?void 0:l.nombre),K=ho(S);return S.length>0?t.jsxs("div",{className:"tm-flex tm-h-fit tm-w-[288px] tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:[!N&&!r?t.jsxs(t.Fragment,{children:[t.jsx("p",{className:"tm-mb-[11px] tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_regular",children:"Atraso de tarea"}),t.jsx(f.Dropdown,{field:{placeholder:"Seleccione una opción"},items:{options:K,idName:"id"},values:{value:(I==null?void 0:I.id)??""},menuSearch:{searchable:!0,searchPlaceholder:"Buscar"},popover:{absolute:!1,closeOnClickOutside:!0,dropdownId:`task-atraso-motivo-${s}`,popoverZIndex:1200},events:{onValueChange:G=>{const k=Number(G);if(Number.isNaN(k))return;const P=S.find(W=>W.id===k);V({id:k,nombre:(P==null?void 0:P.nombre)??""})},onOptionSelect:G=>{const k=G.id;k==null||Number.isNaN(Number(k))||V({id:Number(k),nombre:String(G.label??"")})}}})]}):t.jsxs(t.Fragment,{children:[t.jsx("p",{className:"tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_medium",children:"¿Estas seguro?"}),t.jsx("p",{className:"tm-text-left tm-text-[14px] tm-font-semibold tm-text-ink-black_medium",children:r?"Estás eliminando el atraso de la tarea seleccionada":`Esta tarea está atrasada debido a ${(N==null?void 0:N.nombre)??""}`})]}),t.jsxs("div",{className:"tm-my-[11px] tm-flex tm-justify-end tm-gap-3",children:[t.jsx(f.Button,{type:"button",size:"xs",color:"secondary",onClick:()=>{N?A(null):D()},children:N?"Regresar":"Cancelar"}),t.jsx(f.Button,{type:"button",size:"xs",color:"primary",onClick:()=>{A(I),r&&!N?L(r):N&&ee()},children:"Aceptar"})]})]}):t.jsx("div",{className:"tm-flex tm-h-fit tm-w-[288px] tm-translate-x-0 tm-flex-col tm-gap-3 tm-rounded-lg tm-bg-bg-card tm-p-l tm-shadow-02 tm-transition-all tm-duration-200 tm-ease-in-out",children:"No hay motivos de atraso para ésta tarea"})},z=()=>t.jsx(fa,{copy:yo(),onMove:()=>{y.current=!0,h({id:s}),D()}}),re=()=>{if(O==="first")return B();if(O==="second")return $();if(O==="third")return Y();if(O==="fourth")return z()},ee=async()=>{if(I)try{await U({taskId:s,projectID:i,motivo:(I==null?void 0:I.id)??null}),D()}catch(S){console.error("Error al crear atraso:",S)}};return t.jsx(t.Fragment,{children:(M&&n===2||!a)&&t.jsxs(t.Fragment,{children:[t.jsx(f.Button,{ref:m,type:"button","aria-label":"Más opciones para mover la tarea",color:"secondary",pill:"pill",size:"xxs",icon:Se.faEllipsis,disabled:d}),t.jsx(f.Popup,{ref:c,triggerRef:m,popupId:`task-move-menu-${s}`,position:"bottom-right",offset:1,closeOnClick:!1,closeOnClickOutside:!1,popoverArrow:!1,onOpen:()=>{j(!0),H("first")},onClose:()=>j(!1),children:t.jsx("div",{ref:g,className:`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),le=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"),Xs=require("echarts-for-react"),de=require("@fortawesome/pro-solid-svg-icons"),ot=require("date-fns"),kt=require("react-dom"),Se=require("@fortawesome/free-solid-svg-icons"),Lt=require("date-fns/locale"),Ae=require("react-hook-form"),oe=require("@xyflow/react"),Qe=require("zustand"),Pt=require("moment"),We=require("@fortawesome/pro-duotone-svg-icons");require("@xyflow/react/dist/style.css");const Ys=require("react-pick-color"),sa=e=>{const t={...e};return delete t.project,delete t["project.id"],t},na=e=>{const t={};return Object.entries(e).forEach(([n,o])=>{if(n.includes(".")){const[s,i]=n.split("."),r=t[s]??{};t[s]=r,r[i]=o}else t[n]=o}),t},Oa=u.createContext({}),Js=({children:e})=>{const[t,n]=u.useState({}),[o,s]=u.useState({}),[i,r]=u.useState([]),[l,d]=u.useState(""),c=({name:g,value:x})=>{function j(b){return!isNaN(b)&&b!==null&&b!==""?parseFloat(b):null}const w=j(x);s(b=>{const y={...b},v=i==null?void 0:i.find(S=>S.label.toLowerCase().replace(/ /g,"_")===g);return v?y[v.id]=w??x:y[g]=w??x,((v==null?void 0:v.id)??g)==="owner.config"&&(y["project.id"]=null),y})};u.useEffect(()=>{const g=i.map(x=>x.id==="owner.config"?[x.id,"yo_y_mis_equipos"]:x.id==="dependency"?[x.id,"ambas"]:[x.id,null]);s(x=>{const j={search:x==null?void 0:x.search,taskName:x==null?void 0:x.taskName};return g.forEach(([w,b])=>{j[w]=(x==null?void 0:x[w])!==void 0?x==null?void 0:x[w]:b}),j})},[i]);const m=()=>{const g=i.map(x=>x.id==="owner.config"?[x.id,"yo_y_mis_equipos"]:x.id==="dependency"?[x.id,"ambas"]:[x.id,null]);s(Object.fromEntries(g)),n(na(Object.fromEntries(g)))},f=g=>({1:"Muy facil",2:"Facil",3:"Media",4:"Dificil",5:"Muy dificil"})[g],h=()=>{const g=na(o);g.difficulty!=null&&g.difficulty!==""&&(g.difficulty=f(Number(g.difficulty))),n(g)};return a.jsx(Oa.Provider,{value:{fields:i,filters:t,path:l,defineFields:r,updateFilters:c,cleanFilters:m,applyFilters:h,initialFilters:o,selectPath:d},children:e})},ke=()=>u.useContext(Oa),Ba=u.createContext({}),Zs=({children:e,user:t,url:n,mode:o})=>{const s=o==="prod"?"https://services.imjmedia.com.mx":"https://devobp.imjmedia.com.mx",i=at.create({baseURL:n,headers:{Authorization:`Bearer ${t.accessToken}`},paramsSerializer:d=>De.stringify(d,{encodeValuesOnly:!0})}),r=()=>s,l=d=>d==="undefined"||d===void 0?"":`${s}${d}`;return a.jsx(Ba.Provider,{value:{tasks_api:i,getOBPUrlApi:r,getImageOBP:l},children:e})},fe=()=>u.useContext(Ba),Ra=u.createContext({}),en=({children:e,user:t,url:n})=>{const o=at.create({baseURL:n,headers:{Authorization:`Bearer ${t.accessToken}`},paramsSerializer:s=>De.stringify(s,{encodeValuesOnly:!0})});return a.jsx(Ra.Provider,{value:{user:t,tasks_api:o},children:e})},ve=()=>u.useContext(Ra),je=e=>{const t=i=>Object.prototype.toString.call(i)==="[object Object]",n=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),s=i=>i.attributes?{id:i.id,...i.attributes}:i;if(Array.isArray(e))return e.map(i=>je(i));if(t(e)){if(n(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=s({...e.data}):e.data===null?e=null:e=s(e);for(const i in e)e[i]=je(e[i]);return e}return e},oa=[{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"}]}],ra=[{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:[]}],yt=(e,t,n)=>`${e} ${e===1?t:n}`;function tn(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 n=[];return(t.atrasos??0)>0&&n.push({label:yt(t.atrasos,"atrasada","atrasadas"),color:"danger",variant:"atrasos"}),(t.pausas??0)>0&&n.push({label:yt(t.pausas,"pausada","pausadas"),color:"warning",variant:"pausas"}),(t.vencidos??0)>0&&n.push({label:yt(t.vencidos,"vencida","vencidas"),color:"info",variant:"vencidos"}),n.slice(0,2)}const an=ne.faLightEmergencyOn,sn={name:an},nn=({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((n,o)=>a.jsx("div",{className:"tm-min-w-0 tm-max-w-full tm-flex-shrink-0",children:a.jsx(p.Tag,{label:n.label,color:n.color,stroke:!1,truncateLabel:!0,truncateTooltip:!0,infoIcon:n.variant==="atrasos"?sn:void 0})},`${n.variant}-${n.label}-${o}`))})},on=(e,t=500)=>{const[n,o]=u.useState(e);return u.useEffect(()=>{const s=setTimeout(()=>{o(e)},t);return()=>{clearTimeout(s)}},[e,t]),n},rn=async e=>{const t=De.stringify({fields:["id","nombre"],sort:["nombre:asc"]},{encodeValuesOnly:!0}),n=await e.get(`/api/equipos?${t}`);return n.data?{data:je(n.data.data)}:{data:[]}},za=()=>{const{tasks_api:e}=fe();return le.useQuery({queryKey:["teams"],queryFn:()=>rn(e),staleTime:1e3*60*60*24,select:n=>n.data.map(s=>({label:s.nombre,value:s.id}))})},ln="/api/listado-progreso",cn="/api/proyectos/listado-progreso";function dn(e){return De.stringify(e,{encodeValuesOnly:!0,arrayFormat:"repeat"})}function mn(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 n=String(e.fase).trim().toLowerCase();if(n!=="preventa"&&n!=="venta")throw new Error('listado-progreso: fase debe ser "preventa" o "venta"');const o={proyecto_id:t,fase:n};(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 s=e.search!=null?String(e.search).trim():"";return s&&(o.search=s),e.blocked_only!==void 0&&(o.blocked_only=e.blocked_only===!0||e.blocked_only==="true"?"true":"false"),o}function ia(e){const t=Array.isArray(e.data)?e.data:[],n=e.grafico,o=e.graficos,s=Array.isArray(n)&&n.length>0?n:Array.isArray(o)?o:[];return{data:t,grafico:s}}async function la(e,t,n){const{data:o}=await e.get(t,{params:n,paramsSerializer:dn});return o??{}}async function un(e,t){var o;const n=mn(t);try{const s=await la(e,ln,n);return ia(s)}catch(s){if(at.isAxiosError(s)&&((o=s.response)==null?void 0:o.status)===404){const i=await la(e,cn,n);return ia(i)}throw s}}function pn({proyectoId:e,fase:t,enabled:n,filters:o}){const{tasks_api:s}=fe(),i=n&&Number.isFinite(e)&&Number.isInteger(e)&&e>0;return le.useQuery({queryKey:["listado-progreso",e,t,o],queryFn:()=>un(s,{proyecto_id:e,fase:t,...o}),enabled:i,staleTime:3e4})}const fn=({campaignName:e,searchValue:t,onSearchChange:n})=>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:n,clearable:!0,onClear:()=>n("")})})]})});function gn(e,t){Array.isArray(e)&&t(e.map(String))}function jt({options:e,selected:t,onChange:n,emptyPlaceholder:o,header:s,tagsOverflowPopoverTitle:i,panelSearch:r,panelSearchPlaceholder:l="Buscar…"}){return a.jsx(p.Dropdown,{field:{placeholder:o},items:{options:e},values:{value:t},events:{onValueChange:d=>gn(d,n)},multi:{multiple:!0,selectionSummary:"tags",tagsOverflow:"single-line",tagsOverflowPopoverTitle:i},popover:{fullWidth:!0},list:{listVariant:"search-multi-checkbox",searchMultiCheckbox:{header:s,search:{show:r,placeholder:l},showClearSelection:!1}},menuSearch:{searchable:!1}})}const hn=({mediosOptions:e,plazasOptions:t,estadosOptions:n,selectedMedios:o,selectedPlazas:s,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(jt,{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(jt,{options:t,selected:s,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(jt,{options:n,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})})]})}),Ot=[{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"}],xn=Object.fromEntries(Ot.map(e=>[e.singular,e])),ca=Ot.map(e=>e.serieApiName),bn=new Set(["atrasada","vencida"]);function Bt(e){return xn[e]}function yn(e){var t;return(t=Bt(e.trim().toLowerCase()))==null?void 0:t.serieApiName}function qa(e){return e?e.charAt(0).toUpperCase()+e.slice(1):""}function jn(e){const t=Bt(e);return t?t.uiLabel:qa(e)}function wn(e,t){const n=(e??"").trim().toLowerCase();if(!n)return[{label:t,color:"gray"}];const o=Bt(n);return o?[{label:o.uiLabel,color:o.tagColor}]:[{label:qa(n),color:"gray"}]}function vn(e){var t,n;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 s=(n=e.response)==null?void 0:n.status;if(s)return`Error del servidor (${s}). Revisa logs del backend o el body de la respuesta.`}return e.message||"No se pudieron cargar los datos de progreso."}function _n(e){if(!e||typeof e!="object")return null;const n=e.event;if(n&&typeof n=="object"){const o=n;if(typeof o.offsetX=="number"&&typeof o.offsetY=="number")return{x:o.offsetX,y:o.offsetY};const s=o.event;if(s&&typeof s.offsetX=="number"&&typeof s.offsetY=="number")return{x:s.offsetX,y:s.offsetY}}return null}function Tn(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 Nn(e){return(Number.isFinite(e)?e:0).toFixed(0)}const Cn=({id:e,listadoProgreso:t,phaseLabel:n,listadoForUi:o})=>{const{isPending:s,isError:i,error:r,isSuccess:l,data:d}=t,[c,m]=u.useState(null),f=o??d,h=u.useMemo(()=>{const w=(f==null?void 0:f.grafico)??[],b=O=>{var L,E;return((E=(L=w.find(I=>I.name===O))==null?void 0:L.data)==null?void 0:E[0])??0},y=Ot.map(O=>({key:O.serieApiName,label:O.chartLegendLabel,color:O.chartColorHex})),v=y.map(O=>O.label),S={legendLabel:{color:"#6C6E73",fontSize:12,fontWeight:"bold",padding:[0,0,0,20]}};return y.forEach((O,L)=>{S[`legendDot${L}`]={color:O.color,fontSize:20,fontWeight:"bold",padding:[0,0,0,6]}}),{tooltip:{show:!1},grid:{top:"20%",bottom:"20%",left:"7%",right:"3%"},xAxis:{type:"value",max:100,splitLine:{show:!0},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"category",data:[n],axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6C6E73",fontWeight:"bold",fontSize:12}},legend:{data:v,orient:"horizontal",top:"0%",left:"center",itemGap:30,icon:"none",itemWidth:0,itemHeight:0,formatter:O=>{const L=y.findIndex(E=>E.label===O);return L===-1?O:`{legendLabel|${O}}{legendDot${L}|●}`},textStyle:{rich:S}},series:y.map(O=>({name:O.label,type:"bar",stack:"total",itemStyle:{color:O.color},barWidth:"50%",data:[b(O.key)]}))}},[f==null?void 0:f.grafico,n]),g=u.useCallback(w=>{const b=w;if(b.componentType!=="series")return;const y=_n(w);if(!y)return;const v=Tn(w),S=typeof b.seriesName=="string"?b.seriesName:"";m({x:y.x,y:y.y,label:`${Nn(v)}% ${S}`})},[]),x=u.useCallback(()=>{m(null)},[]),j=u.useMemo(()=>({mouseover:g,mousemove:g,globalout:x}),[g,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:[s&&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:vn(r)})}),l&&d&&a.jsxs("div",{className:"tm-relative tm-h-[140px] tm-w-full",children:[a.jsx(Xs,{option:h,style:{height:"100%",width:"100%"},onEvents:j}),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"})})]})]})})},Rt="-";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:Rt}function Sn(e){var i,r,l,d,c,m,f,h,g,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(),n=(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(),s=(x=e.url)==null?void 0:x.trim();return t||n||o||s||void 0}function En(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 zt(e,t){const n=(e.nombre??"").trim()||Rt,o=Sn(e.imagen??null);let s;if(o){const r=o.startsWith("http")||o.startsWith("data:")||o.startsWith("blob:")?o:t(o);En(r)&&(s=r)}const i=n.slice(0,1);return{name:n,src:s,letter:i}}function An(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 Pn(e){return wn(e,Rt)}const $a=4,da=$a-1,Dn=120,In=-8,ma=8;function Fn(e){return e.length<=$a?{visible:e,overflow:[]}:{visible:e.slice(0,da),overflow:e.slice(da)}}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",ua="Sin responsable",Ua="bottom",Ha="center",Mn="tm-flex tm-max-w-xs tm-items-start tm-gap-2 tm-py-1",kn="tm-text-sm tm-font-semibold tm-leading-snug tm-text-gray-900";function pa(e,t){return e<t-1?{marginRight:`${In}px`}:void 0}function Ln({person:e,getImageOBP:t}){const{src:n,letter:o}=zt(e,t);return n?a.jsx(p.Avatar,{type:"people",src:n,size:"xxs",className:rt}):a.jsx(p.Avatar,{type:"letter",text:o,size:"xxs",className:rt})}function On({person:e,getImageOBP:t}){const{name:n,src:o,letter:s}=zt(e,t);return a.jsxs("div",{className:Mn,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:s,size:"xxs",className:`tm-mt-0.5 ${rt}`}),a.jsx("span",{className:kn,children:n})]})}function Bn({popupId:e,trigger:t,children:n,popupBodyClassName:o="tm-p-3"}){const s=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},Dn)},[l]);return u.useEffect(()=>()=>l(),[l]),a.jsxs("div",{className:"tm-relative tm-inline-flex tm-shrink-0",children:[a.jsx("span",{ref:s,className:"tm-inline-flex tm-cursor-default",onMouseEnter:d,onMouseLeave:c,children:t}),a.jsx(p.Popup,{ref:i,popupId:e,triggerRef:s,closeOnClick:!1,position:"bottom-center",children:a.jsx("div",{className:o,onMouseEnter:d,onMouseLeave:c,children:n})})]})}function Rn(){return a.jsx(p.Tooltip,{label:ua,position:Ua,alignment:Ha,preserveLayout:!0,children:a.jsx("span",{className:"tm-inline-flex tm-shrink-0",role:"img","aria-label":ua,children:a.jsx(p.Avatar,{type:"people",size:"xxs",className:rt,alt:""})})})}function zn({person:e,getImageOBP:t}){const{name:n}=zt(e,t);return a.jsx(p.Tooltip,{label:n,position:Ua,alignment:Ha,preserveLayout:!0,children:a.jsx("span",{className:"tm-inline-flex tm-shrink-0",children:a.jsx(Ln,{person:e,getImageOBP:t})})})}function qn({overflow:e,getImageOBP:t,popupId:n}){return a.jsx(Bn,{popupId:n,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,s)=>a.jsx(On,{person:o,getImageOBP:t},o.id!=null?`${o.id}-${s}`:s))})}const $n=({responsables:e,getImageOBP:t,rowId:n})=>{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:`${ma}px`},children:a.jsx(Rn,{})});const{visible:s,overflow:i}=Fn(o),r=s.length+(i.length>0?1:0);return a.jsxs("div",{className:"tm-flex tm-min-w-0 tm-items-center",style:{paddingRight:`${ma}px`},children:[s.map((l,d)=>{const c=l.id!=null?`r-${l.id}-${d}`:`r-${n}-${d}`;return a.jsx("div",{className:"tm-shrink-0",style:pa(d,r),children:a.jsx(zn,{person:l,getImageOBP:t})},c)}),i.length>0?a.jsx("div",{className:"tm-shrink-0",style:pa(r-1,r),children:a.jsx(qn,{overflow:i,getImageOBP:t,popupId:`listado-progreso-${n}-more`})}):null]})},Un={name:de.faCircleSmall};function Hn({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((n,o)=>a.jsx("div",{className:"tm-min-w-0 tm-max-w-full tm-flex-shrink-0",children:a.jsx(p.Tag,{label:n.label,color:n.color,stroke:!1,truncateLabel:!0,truncateTooltip:!0,infoIcon:Un})},`${n.label}-${o}`))})}const Kn=({listadoProgreso:e,listadoForUi:t,hideClaveColumn:n=!1})=>{var d,c;const{getImageOBP:o}=fe(),s=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($n,{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=>Pn(f.estado),contentAlign:"center",width:110,minWidth:90,sortable:!1,filterable:!1,resizable:!1,render:f=>a.jsx(Hn,{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 n||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,n]),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,...An(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:s,columnsLockable:!1,rows:i,loading:r,hoverable:!1,bordered:!1,borderable:!1,stickyHeader:!0,empty:l,resizable:!1,expandable:!1,striped:!1,stickyCheckbox:!1})})})},Vn={preventa:"Preventa",venta:"Venta"},Gn=({campaignName:e,phase:t,search:n,listado:o,filters:s})=>{const i=Vn[t],r=t==="preventa";return a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-4",children:[a.jsx(fn,{campaignName:e,searchValue:n.value,onSearchChange:n.onChange}),a.jsx(hn,{mediosOptions:s.mediosOptions,plazasOptions:s.plazasOptions,estadosOptions:s.estadosOptions,selectedMedios:s.selectedMedios,selectedPlazas:s.selectedPlazas,selectedEstados:s.selectedEstados,onlyDelayed:s.onlyDelayed,onChangeMedios:s.onChangeMedios,onChangePlazas:s.onChangePlazas,onChangeEstados:s.onChangeEstados,onChangeOnlyDelayed:s.onChangeOnlyDelayed}),a.jsx(Cn,{id:`progress-chart-${i}`,listadoProgreso:o.query,phaseLabel:i,listadoForUi:o.dataForUi}),a.jsx(Kn,{listadoProgreso:o.query,listadoForUi:o.dataForUi,hideClaveColumn:r})]})};function Wn(e){var i,r,l,d;const t=(i=e.types_media)==null?void 0:i.map(c=>c.trim()).filter(Boolean),n=(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),s=((d=e.search)==null?void 0:d.trim().toLowerCase())||void 0;return{mediosSet:t&&t.length>0?new Set(t):void 0,locationsSet:n&&n.length>0?new Set(n):void 0,statusSet:o&&o.length>0?new Set(o):void 0,searchLower:s,onlyDelayed:e.onlyDelayed===!0}}function Qn(e,t){const{mediosSet:n,locationsSet:o,statusSet:s,searchLower:i,onlyDelayed:r}=t;if(n){const l=et(e.tipo_medio)??"";if(!n.has(l))return!1}if(o){const l=et(e.ubicacion)??"";if(!o.has(l))return!1}if(s){const l=(e.estado??"").trim().toLowerCase();if(!s.has(l))return!1}if(r){const l=(e.estado??"").trim().toLowerCase();if(!bn.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 Xn(e){const t=Object.fromEntries(ca.map(o=>[o,0]));for(const o of e){const s=yn(o.estado??"");s&&(t[s]+=1)}const n=e.length;return ca.map(o=>({name:o,data:[n>0?t[o]/n*100:0]}))}function Yn(e,t){const n=Wn(t);if(!(n.mediosSet!==void 0||n.locationsSet!==void 0||n.statusSet!==void 0||n.searchLower!==void 0||n.onlyDelayed))return e;const s=e.data.filter(i=>Qn(i,n));return{data:s,grafico:Xn(s)}}const Ka="__sin_ubicacion__";function Va(e,t){return String(e.label).localeCompare(String(t.label),"es",{sensitivity:"base"})}function wt(e,t,n){const o=new Map;return e.forEach(s=>{const i=t(s);!i||o.has(i)||o.set(i,{label:n?n(i):i,value:i})}),Array.from(o.values()).sort(Va)}function Jn(e){return e.map(t=>t===Ka?"":t)}function Zn(e){const t=wt(e,r=>et(r.tipo_medio)),n=e.some(r=>et(r.ubicacion)===null),o=wt(e,r=>et(r.ubicacion)),s=[...n?[{label:"Sin ubicación",value:Ka}]:[],...o].sort(Va),i=wt(e,r=>{var l;return((l=et(r.estado))==null?void 0:l.toLowerCase())??null},r=>jn(r));return{medios:t,plazas:s,estados:i}}const eo=({isOpen:e,proyectoId:t,campaignName:n,onClose:o})=>{var B;const[r,l]=u.useState("preventa"),[d,c]=u.useState([]),[m,f]=u.useState([]),[h,g]=u.useState([]),[x,j]=u.useState(!1),[w,b]=u.useState(""),y=on(w,400),v=u.useMemo(()=>[{label:"Fase 1 (Preventa)",value:"preventa",leftSlot:ne.faHandHoldingHand},{label:"Fase 2 (Venta)",value:"venta",leftSlot:ne.faHandHoldingCircleDollar}],[]),S=()=>{c([]),f([]),g([]),j(!1)},O=()=>{l("preventa"),S(),b(""),o()},L=U=>{(U==="preventa"||U==="venta")&&(l(U),S(),b(""))},E=u.useMemo(()=>{const U=y.trim();if(U)return U.length>=2?U:void 0},[y,2]),I=pn({proyectoId:t,fase:r,enabled:e,filters:{}}),N=u.useMemo(()=>({types_media:d.length>0?d:void 0,locations:m.length>0?Jn(m):void 0,status:h.length>0?h:void 0,search:E,onlyDelayed:x}),[d,m,h,E,x]),{medios:X,plazas:H,estados:z}=u.useMemo(()=>{var V;const U=((V=I.data)==null?void 0:V.data)??[];return Zn(U)},[(B=I.data)==null?void 0:B.data]),F=u.useMemo(()=>{const U=I.data;return U?Yn(U,N):null},[I.data,N]),G=u.useMemo(()=>({value:w,onChange:b}),[w]),D=u.useMemo(()=>({query:I,dataForUi:F}),[I,F]),$=u.useMemo(()=>({mediosOptions:X,plazasOptions:H,estadosOptions:z,selectedMedios:d,selectedPlazas:m,selectedEstados:h,onlyDelayed:x,onChangeMedios:c,onChangePlazas:f,onChangeEstados:g,onChangeOnlyDelayed:j}),[X,H,z,d,m,h,x]);return a.jsx(p.Modal,{isOpen:e,onClose:O,size:"xl",title:"Progreso",tabs:v,defaultValueTab:"preventa",onChangeTab:L,iconConfig:{icon:ne.faBullhorn},cancelButtonText:"Cerrar",showCancelButton:!0,closeAtCancel:!0,onCancel:O,showSuccessButton:!1,children:a.jsx("div",{className:"tm-bg-surface-default tm-p-16",children:a.jsx(p.Modal.Body,{children:a.jsx(Gn,{campaignName:n,phase:r,search:G,listado:D,filters:$})})})})},to=({setPath:e,setProject:t})=>{var $;const[n,o]=u.useState([]),[s,i]=u.useState(!0),[r,l]=u.useState(0),[d,c]=u.useState(10),[m,f]=u.useState(0),[h,g]=u.useState(!1),[x,j]=u.useState(""),[w,b]=u.useState(0),{filters:y,defineFields:v}=ke(),{tasks_api:S,getImageOBP:O}=fe(),{user:L}=ve(),E=u.useCallback(async(B,U)=>{var V,R,ae;try{i(!0);const ee={filters:{search:(y==null?void 0:y.search)??"",responsable:{idUser:L.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 S.get("/api/listado_campanias",{params:{pagination:{page:B,pageSize:U},...ee}}),K=je(A==null?void 0:A.data);o(K),f((ae=(R=A==null?void 0:A.data)==null?void 0:R.meta)==null?void 0:ae.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,S,L.id]),I=u.useCallback(async()=>{try{const B=await S.get("/api/obtener-comerciales");return[...ra].map(V=>(V.id==="ejecutivo"&&(V.options=B.data.map(R=>({id:R.nombre,name:R.nombre}))),V))}catch(B){return console.error("Error fetching salesman data:",B),[...ra]}},[S]);u.useEffect(()=>{(async()=>{const U=await I();v(U)})()},[v,I]),u.useEffect(()=>{const B=Math.floor(r/d)+1;E(B,d)},[r,d,y,E]);const N=B=>{l(B.first),c(B.rows)},X=Math.floor(r/d)+1,H=u.useMemo(()=>(L.role??"").trim().toLowerCase()==="project manager",[L.role]),z=u.useCallback(B=>{var U;j(((U=B.campania)==null?void 0:U.nombre)??B.nombre??""),b(Number(B.id)),g(!0)},[]),F=u.useMemo(()=>({label:"Ver progreso",leftSlot:ne.faEye,theme:"solid",color:"secondary",tooltip:"Ver progreso",onClick:B=>z(B)}),[z]),G=u.useMemo(()=>{const B=[{id:"nombre",header:"CAMPAÑA",accessor:U=>{var V;return((V=U.campania)==null?void 0:V.nombre)??U.nombre??"-"},width:200,sortable:!1,filterable:!1,resizable:!1},{id:"inicia",header:"FECHA INICIO",accessor:U=>{var V;return((V=U.campania)==null?void 0:V.inicia)??"-"},width:100,sortable:!1,filterable:!1,resizable:!1},{id:"termina",header:"FECHA FIN",accessor:U=>{var V;return((V=U.campania)==null?void 0:V.termina)??"-"},width:100,sortable:!1,filterable:!1,resizable:!1},{id:"responsable",header:"RESPONSABLE",type:"primary",accessor:U=>{var V,R;return((R=(V=U.campania)==null?void 0:V.responsable)==null?void 0:R.nombre)??"-"},width:150,sortable:!1,filterable:!1,resizable:!1,render:(U,V)=>{var Y,k,P,W,_;const R=(Y=V.campania)==null?void 0:Y.responsable,ae=typeof U=="string"||typeof U=="number"?String(U):(R==null?void 0:R.nombre)??"-",ee=(R==null?void 0:R.role)??"-",A=((W=(P=(k=R==null?void 0:R.imagen)==null?void 0:k.formats)==null?void 0:P.thumbnail)==null?void 0:W.url)||((_=R==null?void 0:R.imagen)==null?void 0:_.url)||"",K=A?O(A):R==null?void 0:R.nombre;return{name:ae,...K?{avatar:K}:{},...ee?{subtitle:ee}:{}}}},{id:"alertas",header:"ALERTAS",accessor:U=>tn(U.alertas),width:200,minWidth:100,filterable:!1,sortable:!1,resizable:!1,contentAlign:"center",render:U=>a.jsx(nn,{tags:Array.isArray(U)?U:[]})}];return H&&B.push({id:"acciones",header:"ACCIONES",type:"button",sortable:!1,filterable:!1,resizable:!1,accessor:()=>F,width:190,minWidth:160}),B},[O,H,F]),D=u.useMemo(()=>(n??[]).map(B=>({...B,id:B.id})),[n]);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:G,columnsLockable:!1,rows:D,loading:s,hoverable:!0,resizable:!1,pagination:{enabled:!0,currentPage:X,pageSize:d,total:m,pageSizes:[5,10,15,20,25,50],onPageChange:B=>l((B-1)*d),onPageSizeChange:B=>N({first:0,rows:B})},onRowClick:B=>{t({id:B.id,project:B.nombre}),e("kanban-campania")},empty:{type:"empty",title:"No hay campañas disponibles"}}),a.jsx(eo,{isOpen:h,proyectoId:w,campaignName:x,onClose:()=>g(!1)})]})},Ga=u.createContext(null),ao=()=>u.useContext(Ga),so=({children:e})=>{const t=u.useRef(null),n=u.useRef(null),o=()=>{var s;(s=n.current)==null||s.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:n,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(Ga.Provider,{value:o,children:e})})]})};function no(e,t=300,n={leading:!1,trailing:!0}){let o,s=null;return function(...i){const r=Date.now(),l=n.leading&&!s;clearTimeout(o),l&&e(...i),s=r,o=setTimeout(()=>{n.trailing&&(!n.leading||r-s>=t)&&(e(...i),s=null)},t)}}function oo(e){return e!=null&&e.length?e.map(t=>({id:t.id,label:t.name,value:t.id})):[]}function ro({field:e}){const{updateFilters:t,initialFilters:n}=ke(),o=u.useMemo(()=>oo(e.options),[e.options]),s=n==null?void 0:n[e.id],i=s??"";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 io=()=>{const{fields:e,updateFilters:t,cleanFilters:n,applyFilters:o,initialFilters:s}=ke(),i=ao();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:()=>{n(),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(ro,{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:s==null?void 0:s[r==null?void 0:r.id],name:r.label.toLowerCase().replace(/ /g,"_"),onChange:no(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"})]})},qt=e=>new Intl.DateTimeFormat("es-MX",{month:"long"}).format(e);function lo(e){const t=["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],n=new Date(e).getDay();return t[n]}const fa=e=>{const t=e?typeof e=="string"?ot.parseISO(e):e:new Date,n=t.getDate(),o=qt(t.getMonth()).slice(0,3),s=t.getFullYear().toString().slice(-2),i=lo(t).slice(0,3);return`${i.charAt(0).toUpperCase()+i.slice(1)} ${n} ${o.charAt(0).toUpperCase()+o.slice(1)} ${s}`},$t=(e,t)=>({...e,image:e.image?`${t}${e.image}`:""}),it=e=>{var o,s,i,r;if(!e)return null;const t=(s=(o=e.responsable)==null?void 0:o.nombre)==null?void 0:s.trim();if(t)return t;const n=(r=(i=e.equipo)==null?void 0:i.nombre)==null?void 0:r.trim();return n||null};function Ut(e,t){var n;if(e!=null&&e.length)for(const o of e)o!=null&&o.idUser&&t({idUser:o.idUser,node:o}),(n=o==null?void 0:o.miembros)!=null&&n.length&&Ut(o.miembros,t)}function Wa({idUser:e,node:t}){var o,s,i,r,l,d,c,m;const n=((r=(i=(s=(o=e.userOBP)==null?void 0:o.imagen)==null?void 0:s.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(!(n==null||n===""))return n}function Qa({idUser:e,node:t}){var n,o;return((n=e.userOBP)==null?void 0:n.role)??((o=t.userOBP)==null?void 0:o.role)??{id:0,name:""}}const co=()=>({large:{url:""},medium:{url:""},small:{url:""},thumbnail:{url:""}});function Ve(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 ga(e){if(e==null||typeof e!="object")return null;const t=e,n=t.id!=null?Number(t.id):NaN,o=t.nombre??"",s=t.email??"";return Number.isNaN(n)&&!o.trim()&&!s.trim()?null:{id:Number.isNaN(n)?0:n,nombre:o.trim()||"—",...s.trim()?{email:s.trim()}:{}}}function mo(e){if((e==null?void 0:e.id)==null)return{id:0,texto_corto:""};const t=e.responsable;let n;if(t===null)n=null;else if(t!=null&&typeof t=="object"){const l=t,d=(l.nombre??"").trim();n=d?{id:l.id!=null?Number(l.id):void 0,nombre:d}:null}let o;const s=e.equipo;if(s===null)o=null;else if(s!=null&&typeof s=="object"){const l=s,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}:{},...n!==void 0?{responsable:n}:{},...o!==void 0?{equipo:o}:{}}}function Xa(e){var j;const t=e.responsable,n=t==null?void 0:t.userOBP,o=(t==null?void 0:t.imagen)??(n==null?void 0:n.imagen),s=t?{id:t.id,email:t.email??"",nombre:t.nombre??"",imagen:o??{formats:co()}}:null,i=e.equipo,r=i?{id:i.id,nombre:i.nombre??"",miembros:[]}:{id:0,nombre:"",miembros:[]},l=e.id_t_requerida,d=mo(l),c=e.ids_t_dependientes,f=(Array.isArray(c)?c:c!=null&&typeof c=="object"&&Array.isArray(c.data)?c.data??[]:[]).map(w=>{const b=w==null?void 0:w.responsable,y=b==null?void 0:b.userOBP,S=(b==null?void 0:b.imagen)??(y==null?void 0:y.imagen)??(b==null?void 0:b.image);return b?{...w,responsable:{...b,image:S??b.image,imagen:S??b.imagen}}:w}),h=Array.isArray(e.comentarios)?e.comentarios:[],g=ga(e.created_by),x=ga(e.updated_by);return{descripcion:"",estatus:e.estatus!=null?String(e.estatus):"",comentarios:h,equipo:r,campania:((j=e.proyecto)==null?void 0:j.nombre)??"",nombre_medio:e.nombre_medio??"",ffin:Ve(e.ffin),finicio:Ve(e.finicio),f_inicio_estimada:Ve(e.f_inicio_estimada),f_fin_estimada:Ve(e.f_fin_estimada),fterminada:Ve(e.fterminada),createdAt:Ve(e.createdAt??e.created_at),updatedAt:Ve(e.updatedAt??e.updated_at),responsable:s,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}:{},...x?{updatedBy:x}:{}}}class uo{static toCampaignTasks(t){var i,r,l,d,c,m,f,h,g,x,j,w,b,y,v;const n=it(t==null?void 0:t.id_t_requerida),o=it(t==null?void 0:t.tarea_padre),s=[];return t!=null&&t.responsable&&s.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&&Ut(t.equipo.miembros,S=>{s!=null&&s.find(O=>O.id===S.idUser.id)||s.push({id:S.idUser.id,name:S.idUser.nombre,image:Wa(S),role:Qa(S)})}),{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:s,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:((x=t==null?void 0:t.proyecto)==null?void 0:x.id)??null,medioName:(t==null?void 0:t.nombre_medio)??null,statusRequiredTask:((j=t==null?void 0:t.id_t_requerida)==null?void 0:j.estatus)??null,nameRequiredTask:((w=t==null?void 0:t.id_t_requerida)==null?void 0:w.texto_corto)??null,nameRequiredTaskResponsible:n,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:((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(S=>({id:S.id,name:S.texto_corto,status:S.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:Xa(t)}}}class po{static toKanbanTasks(t){var i,r,l,d,c,m,f,h,g,x,j,w,b;const n=it(t==null?void 0:t.id_t_requerida),o=it(t==null?void 0:t.tarea_padre),s=[];return t!=null&&t.responsable&&s.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&&Ut(t.equipo.miembros,y=>{s!=null&&s.find(v=>v.id===y.idUser.id)||s.push({id:y.idUser.id,name:y.idUser.nombre,image:Wa(y),role:Qa(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:s,responsible:((x=t==null?void 0:t.responsable)==null?void 0:x.id)??null,name_father_required_task:((j=t==null?void 0:t.tarea_padre)==null?void 0:j.texto_corto)??null,name_father_required_task_responsible:o,statusRequiredTask:((w=t.id_t_requerida)==null?void 0:w.estatus)??null,nameRequiredTask:((b=t.id_t_requerida)==null?void 0:b.texto_corto)??null,nameRequiredTaskResponsible:n,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:Xa(t)}}}function fo(e){const t=(e??"").replace(/\/+$/,"");return/\/api\/tareas$/i.test(t)||/\/tareas$/i.test(t)?"listado-kanban-general":"/api/tareas/listado-kanban-general"}function go(e){var o,s,i,r;const t=e.owner,n={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&&(n.taskName=e.taskName),e.difficulty&&(n.difficulty=e.difficulty),e.priority&&(n.priority=e.priority),e.dependency&&(n.dependency=e.dependency),e.status&&(n.status=e.status),e.taskType&&(n.taskType=e.taskType),((o=e.project)==null?void 0:o.id)!=null&&`${e.project.id}`.trim()!==""?n.project={id:e.project.id}:(s=e.project)!=null&&s.name&&(n.project={name:e.project.name}),((i=e.salesman)==null?void 0:i.id)!=null&&`${e.salesman.id}`.trim()!==""?n.salesman={id:e.salesman.id}:(r=e.salesman)!=null&&r.name&&(n.salesman={name:e.salesman.name}),e.pagination&&(n.pagination={page:e.pagination.page??1,pageSize:e.pagination.pageSize??30,...e.pagination.withCount!==void 0?{withCount:e.pagination.withCount}:{}}),e.includeAllTasks===!0&&(n.includeAllTasks=!0),n}async function Ya({filters:e,tasks_api:t}){var f;const n={...e,cancelada:e.cancelada??!1},o=go(n),s=fo(t.defaults.baseURL),r=(await t.post(s,{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 pt=async({filters:e,tasks_api:t})=>{try{const{rows:n,total:o}=await Ya({filters:e,tasks_api:t});return{tasks:n.map(i=>po.toKanbanTasks(i)),total:o}}catch(n){throw console.log({error:n}),`Error al obtener las tareas: ${n}`}},ho=500,xo=100,bo=async({filters:e,tasks_api:t,project:n})=>{const{status:o,pagination:s,...i}=e,r={...i,owner:e.owner,project:{id:n},cancelada:!1,includeAllTasks:!0},l=[];let d=0,c=1;const m=(s==null?void 0:s.pageSize)??ho;for(;;){const{rows:f,total:h}=await Ya({filters:{...r,pagination:{page:c,pageSize:m,withCount:!0}},tasks_api:t});if(d=h,l.push(...f),f.length===0||l.length>=d||f.length<m||(c+=1,c>xo))break}return l.map(f=>uo.toCampaignTasks(f))},Ht=["Project Manager","Administrador"];function yo(e){return e==null||e===""?!1:Ht.includes(e)}function ze(e,t){return e==="todas"&&!yo(t)?"yo_y_mis_equipos":e!=null&&e!==""?e:"yo_y_mis_equipos"}const Ja=u.createContext({}),jo=({children:e,project:t})=>{var b;const[n,o]=u.useState([]),[s,i]=u.useState(!1),[r,l]=u.useState([]),{tasks_api:d}=fe(),{filters:c}=ke(),{user:m}=ve(),[f,h]=u.useState({owner:{user:m.id,config:ze((b=c==null?void 0:c.owner)==null?void 0:b.config,m.role)},project:{id:t}});u.useEffect(()=>{var y;if(Object.keys(c).length>0){const v={...c,owner:{user:m.id,config:ze((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=le.useQuery({queryKey:["tasksProject",f,t],queryFn:()=>{var v;const y={...f,taskName:c==null?void 0:c.taskName,owner:{...f.owner,config:ze(f.owner.config||((v=c==null?void 0:c.owner)==null?void 0:v.config),m.role)}};return bo({filters:y,project:t,tasks_api:d})},refetchOnWindowFocus:!1}),x=y=>{o(v=>[...v,y])},j=y=>{l(v=>v.includes(y)?v.filter(S=>S!==y):[...v,y])},w=t??null;return a.jsx(Ja.Provider,{value:{tasksProject:g,selectedTasks:n,projectID:w,openTasks:r,selectTask:x,filtersToSend:f,openTask:j,isRefetching:s,project:t,filters:c,setIsRefetching:i},children:e})},st=()=>u.useContext(Ja),Za=u.createContext(void 0),ha=()=>({selectedTaskIds:[],baseColumn:null,isFullColumnSelected:!1});function es({children:e,invalidateAfterBulkSuccess:t}){const[n,o]=u.useState(ha),[s,i]=u.useState(null),[r,l]=u.useState(!1),{selectedTaskIds:d,baseColumn:c,isFullColumnSelected:m}=n,f=d.length>0,h=c!==null,g=u.useCallback(()=>{o(ha()),i(null),l(!1)},[]),x=u.useCallback(()=>{o(y=>({...y,selectedTaskIds:[],isFullColumnSelected:!1}))},[]),j=u.useCallback((y,v)=>{v!=="Completadas"&&o(S=>{if(S.baseColumn&&S.baseColumn!==v)return S;const O=new Set(S.selectedTaskIds);return O.has(y)?(O.delete(y),{selectedTaskIds:[...O],baseColumn:S.baseColumn,isFullColumnSelected:!1}):(O.add(y),{selectedTaskIds:[...O],baseColumn:S.baseColumn??v,isFullColumnSelected:!1})})},[]),w=u.useCallback(async(y,v)=>{if(y!=="Completadas"){l(!0);try{const S=await v(),O=[...new Set(S)];o(L=>L.baseColumn&&L.baseColumn!==y?L:{selectedTaskIds:O,baseColumn:L.baseColumn??y,isFullColumnSelected:O.length>0})}finally{l(!1)}}},[]);u.useEffect(()=>{d.length===0&&c!==null&&g()},[d.length,c,g]);const b=u.useMemo(()=>({selectedTaskIds:d,baseColumn:c,isMultiSelectActive:f,isBulkSessionActive:h,isFullColumnSelected:m,pendingTargetStatus:s,isBulkLoading:r,invalidateAfterBulkSuccess:t,toggleTaskSelection:j,deselectAllSelectedTasks:x,exitBulkSelectionMode:g,selectEntireColumn:w,setPendingTargetStatus:i,setIsBulkLoading:l}),[d,c,f,h,m,s,r,t,j,x,g,w,i,l]);return a.jsx(Za.Provider,{value:b,children:e})}function Kt(){return u.useContext(Za)}const wo=()=>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 ts{static toAtrasoReasons(t){return{id:t.id,motivo_imj:t.motivo_imj,categoria:t.categoria??null}}}const vo=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(ts.toAtrasoReasons)}catch(t){throw console.log("Error al obtener los motivos de atraso",t),`Error al obtener los motivos de atraso: ${t}`}},as=({enabled:e=!1}={})=>{const{tasks_api:t}=fe(),{user:n}=ve(),o=le.useQueryClient(),{filters:s,path:i}=ke(),{data:r,isLoading:l}=le.useQuery({queryKey:["atraso_reasons"],queryFn:()=>vo({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(ts.toAtrasoReasons)},c=async({taskId:y,motivoId:v,projectID:S})=>{try{return(await t.post("/api/atrasos",{data:{inicio:new Date,fin:null,motivo:v,proyecto:S,tarea:y,creada_por:n==null?void 0:n.id}})).data}catch(O){console.log("error",O)}},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:S})=>{await j({taskId:y,motivoId:S,projectID:v})},g=async y=>{await w(y)},x=async y=>{await b(y)},{mutateAsync:j}=le.useMutation({mutationFn:c,onSuccess:()=>{p.messageService.success("Atraso registrado correctamente"),i==="kanban-general"&&(o.invalidateQueries({queryKey:["to_do_tasks",s]}),o.invalidateQueries({queryKey:["working_tasks",s]})),i==="kanban-campania"&&o.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{p.messageService.error("Error al registrar el atraso")}}),{mutateAsync:w}=le.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}=le.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:x}},Ke=()=>{const{tasks_api:e}=fe(),{user:t}=ve(),{filters:n,path:o}=ke(),s=le.useQueryClient(),{projectID:i}=st(),{finalizarAtraso:r}=as({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:F})=>{const G=await e.post("/api/terminarTarea",{id_task:z,ended_at:new Date().toISOString(),id_user:t==null?void 0:t.id});return await r(F),G.data},m=async({id:z,repeats:F})=>(await e.put(`/api/tareas/${z}`,{data:{repeticiones_realizadas:F,updated_by:t==null?void 0:t.id}})).data,f=async({id:z,motiveId:F})=>{try{const G=await e.post("/api/pausarTarea",{taskId:z,userId:t==null?void 0:t.id,motivoId:F});return p.messageService.success("Tarea pausada correctamente"),G.data}catch(G){p.messageService.error(`Error al pausar la tarea: ${G}`)}},h=async({id:z})=>{try{const F=await e.post("/api/reanudarTarea",{taskId:z});return p.messageService.success("Tarea reanudada correctamente"),F.data}catch(F){p.messageService.error(`Error al reanudar la tarea: ${F}`)}},g=async({id:z,idNewResponsible:F,typeOfSelect:G})=>{let D={updated_by:t==null?void 0:t.id};return G==="responsible"&&(D={...D,responsable:F}),G==="team"&&(D={...D,responsable:null,equipo:F}),(await e.put(`/api/tareas/${z}`,{data:D})).data},x=async({id:z,data:F,user:G})=>{try{return(await e.put(`/api/tareas/${z}`,{data:{...F,updated_by:G==null?void 0:G.id}})).data}catch(D){console.error("Error updating the element:",D)}},j=async({id:z})=>{await y({id:z})},w=async({id:z,data:F,user:G})=>{await b({id:z,data:F,user:G})},{mutateAsync:b}=le.useMutation({mutationFn:x,onSuccess:()=>{p.messageService.success("Tarea actualizada correctamente");const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(s.invalidateQueries({queryKey:[z[o],n]}),s.invalidateQueries({queryKey:["done_tasks",n]}),s.invalidateQueries({queryKey:["working_tasks",n]})),o==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(F){console.error("Error invalidating queries:",F)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]})}}),{mutateAsync:y}=le.useMutation({mutationFn:l,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(s.invalidateQueries({queryKey:[z[o],n]}),s.invalidateQueries({queryKey:["working_tasks",n]})),o==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(F){console.error("Error updating the element:",F)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:v}=le.useMutation({mutationFn:c,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{s.setQueryData([z[o],n],F=>{console.log({oldData:F})}),o==="kanban-general"&&(s.invalidateQueries({queryKey:[z[o],n]}),s.invalidateQueries({queryKey:["done_tasks",n]}),s.invalidateQueries({queryKey:["working_tasks",n]})),o==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(F){console.error("Error invalidating queries:",F)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["done_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:S}=le.useMutation({mutationFn:m,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(s.invalidateQueries({queryKey:[z[o],n]}),s.invalidateQueries({queryKey:["done_tasks",n]}),s.invalidateQueries({queryKey:["working_tasks",n]})),o==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(F){console.error("Error invalidating queries:",F)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["done_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:O}=le.useMutation({mutationFn:g,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(s.invalidateQueries({queryKey:[z[o],n]}),s.invalidateQueries({queryKey:["done_tasks",n]}),s.invalidateQueries({queryKey:["working_tasks",n]})),o==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(F){console.error("Error invalidating queries:",F)}},onError:z=>{console.error("Failed to reassign the task.",z)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["done_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:L}=le.useMutation({mutationFn:d,onSuccess:()=>{const z={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{o==="kanban-general"&&(s.invalidateQueries({queryKey:[z[o],n]}),s.invalidateQueries({queryKey:["working_tasks",n]})),o==="kanban-campania"&&(s.invalidateQueries({queryKey:["tasksProject"]}),s.invalidateQueries({queryKey:["tasksProject",n,i]}))}catch(F){console.error("Error updating the element:",F)}},onError:z=>{console.error("Failed to update the task.",z)},onMutate:async()=>{await s.cancelQueries({queryKey:["working_tasks"]}),await s.cancelQueries({queryKey:["to_do_tasks"]})}});return{updatingTask:w,updateTask:x,startTask:async({id:z})=>{await L({id:z})},startWorking:j,completeTask:async({id:z,idAtraso:F})=>{await v({id:z,idAtraso:F})},reasignResponsible:async({id:z,idNewResponsible:F,typeOfSelect:G})=>{await O({id:z,idNewResponsible:F,typeOfSelect:G})},updateUnitys:async({repeats:z,id:F})=>{await S({repeats:z,id:F})},pauseTask:async({id:z,motiveId:F})=>{console.log({taksId:z,motivoId:F,user:t==null?void 0:t.id})},postPauseTask:f,postReanudeTask:h}},_o="Project Manager";function ft(e,t){return e===_o?!0:Number.isFinite(t)?t===0:!1}function Me({trigger:e,children:t,enabled:n=!0,position:o="top",offset:s=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 n?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:s,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:n="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]"}[n];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`})},xa=({trigger:e,user:t,showUser:n=!0})=>a.jsx(Me,{trigger:e,enabled:n,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})]})}),To=({options:e,onselect:t})=>{const[n,o]=u.useState(""),s=[...e].filter(i=>i.name.toLowerCase().includes(n.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:n,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:s.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 No{static toDomain(t){return{id:t.id,name:t.nombre,color:t.color}}}const Co=()=>{const{tasks_api:e}=fe();return{teams:le.useQuery({queryKey:["teams","all"],queryFn:async()=>{const n=await e.get("/api/equipos");return je(n.data).map(No.toDomain)},refetchOnWindowFocus:!1})}};class Vt{static toUsers(t){var n,o,s;return{id:t.id,name:t.nombre,image:(s=(o=(n=t.imagen)==null?void 0:n.formats)==null?void 0:o.thumbnail)==null?void 0:s.url,tasksUser:{email:t.tasksUser.email,id:t.tasksUser.id,nombre:t.tasksUser.nombre},role:t.role}}static toUsersV2(t){var n,o,s;return{id:t.id,name:t.nombre,image:(s=(o=(n=t.imagen)==null?void 0:n.formats)==null?void 0:o.thumbnail)==null?void 0:s.url,role:t.role}}static toUsersWithIndex(t){var o,s,i;const n={};for(const r of t)n[r.email]={...r,image:(i=(s=(o=r.imagen)==null?void 0:o.formats)==null?void 0:s.thumbnail)==null?void 0:i.url};return n}}const So=async({tasks_api:e})=>{try{const t=await e.get("/api/getAllOBPusersMembers");return je(t.data).map(Vt.toUsers)}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},Eo=async({tasks_api:e})=>{try{const t={filters:{$and:[{role:{name:{$in:["Project Manager","Operation Manager","Administrador"]}}},{blocked:{$eq:!1}}]}},n=De.stringify(t,{encodeValuesOnly:!0}),o=await e.get(`/api/users?${n}`),i=je(o.data).map(d=>d.email),r=await e.get(`/api/getAllOBPusers?filters[name][$in]=${i}`);return je(r.data).map(Vt.toUsersV2)}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},Ao=async({users:e})=>{try{const t=je(e);return Vt.toUsersWithIndex(t)}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},Po=()=>{const{tasks_api:e}=fe();return{users:le.useQuery({queryKey:["users"],queryFn:()=>So({tasks_api:e}),staleTime:1e3*60*60*24})}},Do=()=>{const{tasks_api:e}=fe();return{users:le.useQuery({queryKey:["allUsers"],queryFn:()=>Eo({tasks_api:e}),staleTime:1e3*60*60*24})}};function Io(e,t){if(!(t!=null&&t.length))return e;const n=new Set(t),o=e.filter(s=>{var i;return((i=s.tasksUser)==null?void 0:i.id)!=null&&n.has(s.tasksUser.id)||s.id!=null&&n.has(s.id)});return o.length>0?o:e}const ss=({users:e,responsibleCandidateIds:t,onClick:n,responsible:o,role:s,status:i})=>{const{getOBPUrlApi:r}=fe(),l=u.useRef(null),d=u.useRef(null),c=u.useId(),[m,f]=u.useState("team"),{teams:h}=Co(),{users:g}=Po(),x=u.useMemo(()=>{const S=((g==null?void 0:g.data)??[]).map(O=>$t(O,r()));return Io(S,t)},[g==null?void 0:g.data,r,t]),j=ft(s,i),w=()=>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((S,O)=>a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8 ",children:[a.jsx(Fe,{imageUrl:S.image??"",alt:S.name},O),a.jsx(p.Text,{children:S.name})]},O))})}),b=()=>{if(o){const S=e.find(O=>O.id===o);return a.jsx("div",{children:j?a.jsx(p.Tooltip,{label:(S==null?void 0:S.name)??"",position:"top",children:a.jsx(Fe,{imageUrl:S==null?void 0:S.image,alt:S==null?void 0:S.name},o)}):a.jsx(xa,{trigger:a.jsx(Fe,{imageUrl:S==null?void 0:S.image,alt:S==null?void 0:S.name},o),user:S,showUser:!0})})}return(e==null?void 0:e.length)>0&&e.slice(0,3).map((S,O)=>a.jsx("div",{className:`${O===0?"":"tm-ml-[-8px]"}`,children:j?a.jsx(p.Tooltip,{label:S.name,position:"top",children:a.jsx(Fe,{imageUrl:S.image,alt:S.name})}):a.jsx(xa,{trigger:a.jsx(Fe,{imageUrl:S.image,alt:S.name}),user:S,showUser:!0})},S.id||O))},y=()=>{const S=[{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:S.map((O,L)=>a.jsx("button",{type:"button",className:`tm-w-full tm-border-texts-placeholder tm-text-center tm-text-[10px] ${m===O.id?"tm-text-primary-pastel":""} ${L===S.length-1?"tm-border-r-0":" tm-border-r-2"}`,onClick:()=>f(O.id),children:O.label},O.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(To,{options:m==="team"?((h==null?void 0:h.data)??[]).map(S=>({id:S.id,name:S.name,image:""})):x,onselect:S=>{var E,I;(E=d.current)==null||E.close();const O=S,L=m==="team"?O.id:((I=O.tasksUser)==null?void 0:I.id)??O.id;n(L,m)}})]});return e.length===0?j?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(),w()]}),j&&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()})]})},Fo=[1,2,3,4,5],vt={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 ba(e){const t=Number(e);if(e==null||Number.isNaN(t)||!Number.isFinite(t))return 1;let n=Math.trunc(t);return n===0&&(n=1),n<1||n>5?1:n}const Gt=({difficulty:e,id:t,withLabel:n=!1,canEdit:o=!0})=>{const{updatingTask:s}=Ke(),i=u.useId().replace(/:/g,""),[r,l]=u.useState(null),{user:d}=ve(),[c,m]=u.useState(()=>ba(e));u.useEffect(()=>{m(ba(e))},[e]);const f={title:"Sin dato",color:"primary"},h=vt[c]??f,g=h.title??"Sin dato",x=()=>{if(!r)return null;const w=({level:b,text:y,itemColor:v})=>a.jsxs("button",{type:"button",onClick:async()=>{l(null),await s({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:y})]});return kt.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:Fo.map(b=>a.jsx(w,{level:b,text:vt[b].title,itemColor:vt[b].color},b))}),document.body)},j=w=>{w.stopPropagation()};return o?a.jsxs("div",{className:"tm-relative",onClick:j,onPointerDown:j,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:h.color}),children:a.jsx("div",{className:"tm-px-8 tm-py-4",children:a.jsx(p.Text,{color:h.color,children:`Dificultad: ${g}`})})}),n&&a.jsx(p.Text,{as:"span",color:h.color,children:g})]}),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(x,{})]}):a.jsxs("div",{className:"tm-relative tm-flex tm-items-center tm-gap-2",onClick:j,onPointerDown:j,children:[a.jsx(Me,{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}`})})}),n&&a.jsx(p.Text,{as:"span",color:h.color,className:"tm-text-lg tm-font-normal",children:g})]})},Wt=({priority:e,id:t,withLabel:n=!1,canEdit:o=!0})=>{const{updatingTask:s}=Ke(),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"}},h={title:"Sin prioridad",color:"primary"},x=(()=>{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})(),j=x.title??"Sin prioridad",w=()=>{if(!r)return null;const y=({priorityTask:v,text:S,itemColor:O})=>a.jsxs("button",{type:"button",onClick:async()=>{l(null),await s({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:O}),a.jsx(p.Text,{type:"body",size:"sm",color:O,children:S})]});return kt.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,S)=>a.jsx(y,{priorityTask:S,text:v.title,itemColor:v.color},S))}),document.body)},b=y=>{y.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: ${j}`})})}),n&&a.jsx(p.Text,{as:"span",color:x.color,className:" tm-font-normal",children:j})]}),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(w,{})]}):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: ${j}`})})}),n&&a.jsx(p.Text,{as:"span",color:x.color,className:"tm-text-lg tm-font-normal",children:j})]})};function Mo(e,t){return((e==null?void 0:e.map(o=>{var s;return{id:o.id,nombre:o.motivo_imj??"",categoria:(s=o.categoria)==null?void 0:s.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 ko(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 Lo(e,t){const n=[];return e===0&&n.push({id:He.TO_SECOND,label:"Mover a trabajando",icon:Se.faArrowRight}),e===1&&n.push({id:He.TO_SECOND,label:"Mover a completada",icon:Se.faArrowRight},{id:He.TO_FOURTH,label:"Mover por hacer",icon:Se.faArrowLeft}),t?n.push({id:He.TO_THIRD,label:"Eliminar atraso"}):n.push({id:He.TO_THIRD,label:"Agregar atraso"}),n}function Oo(e){return e===0?{title:"Mover a trabajando"}:{title:"Mover a completada"}}function Bo(){return{title:"Mover a por hacer"}}function ya({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 Ro=({status:e,nameRequiredTask:t,statusRequiredTask:n,id:o,statusLateTask:s=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:x}=Ke(),j=u.useRef(!1),[w,b]=u.useState(!1),[y,v]=u.useState(null),[S,O]=u.useState("first"),L=t!==""&&n===2,[E,I]=u.useState(null),{atrasoReasons:N,isLoading:X,createAtraso:H,deleteAtraso:z}=as({enabled:!0}),[F,G]=u.useState(null),D=u.useCallback(()=>{var A;(A=c.current)==null||A.close()},[]);u.useEffect(()=>{s&&O("third")},[s]),u.useEffect(()=>{if(!w)return;const A=()=>{D()};return window.addEventListener("scroll",A,!0),document.addEventListener("scroll",A,!0),()=>{window.removeEventListener("scroll",A,!0),document.removeEventListener("scroll",A,!0)}},[w,D]);const $=A=>{O(A),A==="second"?v(e===0?"Trabajando":"Completadas"):A==="fourth"&&v("Por hacer")},B=()=>{if(j!=null&&j.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=Lo(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:K=>{switch(K.id){case He.TO_SECOND:$("second");break;case He.TO_THIRD:$("third");break;case He.TO_FOURTH:$("fourth");break}}}})})},U=()=>a.jsx(ya,{copy:Oo(e),onMove:()=>{j.current=!0,y==="Trabajando"?h({id:o}):y==="Por hacer"?x({id:o}):g({id:o,idAtraso:r}),D()}}),V=()=>{if(X)return a.jsx("div",{children:"Cargando motivos..."});const A=Mo(N,l==null?void 0:l.nombre),K=ko(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:[!E&&!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:K,idName:"id"},values:{value:(F==null?void 0:F.id)??""},menuSearch:{searchable:!0,searchPlaceholder:"Buscar"},popover:{absolute:!1,closeOnClickOutside:!0,dropdownId:`task-atraso-motivo-${o}`,popoverZIndex:1200},events:{onValueChange:Y=>{const k=Number(Y);if(Number.isNaN(k))return;const P=A.find(W=>W.id===k);G({id:k,nombre:(P==null?void 0:P.nombre)??""})},onOptionSelect:Y=>{const k=Y.id;k==null||Number.isNaN(Number(k))||G({id:Number(k),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 ${(E==null?void 0:E.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:()=>{E?I(null):D()},children:E?"Regresar":"Cancelar"}),a.jsx(p.Button,{type:"button",size:"xs",color:"primary",onClick:()=>{I(F),r&&!E?z(r):E&&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"})},R=()=>a.jsx(ya,{copy:Bo(),onMove:()=>{j.current=!0,x({id:o}),D()}}),ae=()=>{if(S==="first")return B();if(S==="second")return U();if(S==="third")return V();if(S==="fourth")return R()},ee=async()=>{if(F)try{await H({taskId:o,projectID:i,motivo:(F==null?void 0:F.id)??null}),D()}catch(A){console.error("Error al crear atraso:",A)}};return a.jsx(a.Fragment,{children:(L&&n===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:Se.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),O("first")},onClose:()=>b(!1),children:a.jsx("div",{ref:f,className:`
3
3
  tm-ease tm-transition-all tm-duration-300
4
- ${O==="second"?"":"tm-translate-x-0"}
5
- `,children:re()})})]})})},Ce={texts:{subtext:"#4f4f4f",placeholder:"#929292"},primary:{regular:"#425CAC"},success:{dark:"#368156",regular:"#43B071"},danger:{dark:"#8C352C",regular:"#C34335"},warning:{dark:"#B4782F",regular:"#D38A31"}},wo=({id:e,idAtraso:a})=>{const[n,s]=u.useState(!1),{completeTask:o}=He();return{checked:n,checkTask:()=>{s(!n),o({id:e,idAtraso:a})}}},ga={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"},vo="tm-mx-[2px] tm-flex tm-items-center tm-justify-center tm-rounded-full tm-bg-success-regular tm-transition-all",ha="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",Wa=({id:e,nameRequiredTask:a,statusRequiredTask:n,status:s,idAtraso:o,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:g,checkTask:x}=wo({id:e,idAtraso:o}),h=!!(a&&a!==""&&n===2)||!a,y=!!r,w=s===1&&d,j=()=>t.jsx("label",{htmlFor:m,className:g?ga.checked:ga.unchecked,children:g?t.jsx(f.Icon,{name:ne.faCheck,size:"xs",style:{color:"white"},color:"current"}):t.jsx(f.Icon,{name:ne.faCircle,size:"sm",style:{color:Ce.texts.placeholder},color:"current"})});return s===2?t.jsx("div",{className:vo,children:t.jsx(f.Icon,{name:de.faCircleCheck,size:"xs",style:{color:"white"},color:"current"})}):y?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"tm-flex tm-w-fit tm-shrink-0 tm-flex-row tm-flex-nowrap tm-items-center tm-gap-1",children:[t.jsx(Fe,{position:"bottom",popoverArrow:!1,triggerWrapperClassName:"tm-inline-flex tm-items-center",trigger:t.jsx("span",{className:"tm-cursor-help tm-inline-flex","aria-hidden":!0,children:t.jsx(f.Icon,{name:ne.faCircleInfo,size:"sm",style:{color:Ce.warning.regular},color:"current"})}),children:t.jsxs("div",{className:ha,children:[t.jsx("p",{className:"tm-w-[210px] tm-font-bold",children:"Tarea padre:"}),t.jsx("p",{children:r}),l&&t.jsxs("p",{className:"tm-font-bold",children:["Responsable:"," ",t.jsx("span",{className:"tm-font-normal",children:l})]}),t.jsx(f.Text,{children:"Esta tarea completa automáticamente la tarea padre."})]})}),w&&j()]}),t.jsx("input",{id:m,checked:g,onChange:x,type:"checkbox",className:"tm-hidden","aria-hidden":!0})]}):h?t.jsxs(t.Fragment,{children:[s===1&&j(),t.jsx("input",{id:m,checked:g,onChange:x,type:"checkbox",className:"tm-hidden","aria-hidden":!0})]}):t.jsxs(t.Fragment,{children:[t.jsx(Fe,{position:"bottom",popoverArrow:!1,triggerWrapperClassName:"tm-inline-flex tm-items-center",trigger:t.jsx("span",{className:"tm-cursor-help tm-inline-flex","aria-hidden":!0,children:t.jsx(f.Icon,{name:ne.faCircleInfo,size:"sm",style:{color:Ce.warning.regular},color:"current"})}),children:t.jsxs("div",{className:ha,children:[t.jsx("p",{className:"tm-w-[210px] tm-font-bold",children:"Requiere completar su tarea:"}),t.jsx("p",{children:a}),i&&t.jsxs("p",{className:"tm-font-bold",children:["Responsable: ",t.jsx("span",{className:"tm-font-normal",children:i})]})]})}),t.jsx("input",{id:m,checked:g,onChange:x,type:"checkbox",className:"tm-hidden","aria-hidden":!0})]})};function _o({items:e}){var s;const[a,n]=u.useState(1);return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"tm-mb-2 tm-mt-4 tm-flex tm-flex-row tm-border-b tm-border-black-light tm-bg-surface-default",children:e.map((o,i)=>t.jsx("div",{className:"tm-border-r tm-border-black-light",children:t.jsx(f.Button,{color:"tertiary",pill:"none",size:"xs",active:a===o.id,onClick:()=>n(o.id),children:o.label},o.id)},o.id))}),t.jsx("div",{className:"tm-flex-1 tm-overflow-y-auto tm-bg-surface-default tm-pt-4",children:(s=e.find(o=>o.id===a))==null?void 0:s.component})]})}function To({comment:e}){var o,i,r,l,d;const{getImageOBP:a}=pe(),n=(l=(r=(i=(o=e==null?void 0:e.autor)==null?void 0:o.imagen)==null?void 0:i.formats)==null?void 0:r.thumbnail)==null?void 0:l.url;function s(c){const m=mt.parseISO(c);return mt.formatDistanceToNow(m,{locale:Mt.es,addSuffix:!0})}return t.jsx("div",{children:t.jsxs("div",{className:"tm-flex tm-flex-row tm-items-start tm-gap-3",children:[t.jsx(De,{size:"xxl",imageUrl:n?a(n):"",alt:"@shadcn"}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-4",children:[t.jsxs("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-4",children:[t.jsx(f.Text,{type:"title",size:"sm",weight:"medium",color:"secondary",children:(d=e==null?void 0:e.autor)==null?void 0:d.nombre}),t.jsx(f.Text,{children:s(e==null?void 0:e.createdAt)})]}),t.jsx(f.Text,{children:e==null?void 0:e.comentario})]})]})})}function No({currentUser:e,data:a,taskId:n,onNewComment:s}){var p,h,y;const{tasks_api:o,getImageOBP:i}=pe(),{control:r,handleSubmit:l,reset:d}=Pe.useForm({defaultValues:{comment:""}}),[c,m]=u.useState([]),g=(y=(h=(p=e==null?void 0:e.imagen)==null?void 0:p.formats)==null?void 0:h.thumbnail)==null?void 0:y.url;u.useEffect(()=>{if(a!=null&&a.comentarios){const w=[...a.comentarios].sort((j,b)=>new Date(b.createdAt).getTime()-new Date(j.createdAt).getTime());m(w)}},[a]);const x=async w=>{try{const j={id:Date.now(),autor:{id:e==null?void 0:e.id,email:e==null?void 0:e.email,nombre:e==null?void 0:e.nombre,imagen:e==null?void 0:e.imagen},comentario:w.comment,createdAt:new Date().toISOString(),updatedAt:null};await o.post("/api/comentarios",{data:{autor:e==null?void 0:e.id,comentario:w.comment,tarea:n}}),s(!0),m(b=>[j,...b]),d()}catch(j){console.error("Error al agregar comentario:",j)}};return t.jsxs("div",{className:"tm-flex tm-h-full tm-flex-col tm-gap-4",children:[t.jsxs("form",{onSubmit:l(x),className:"tm-flex tm-flex-row tm-items-center tm-gap-3",children:[t.jsx(De,{size:"xxl",imageUrl:g?i(g):"",alt:"@shadcn"}),t.jsx("div",{className:"tm-min-w-0 tm-flex-1",children:t.jsx(Pe.Controller,{name:"comment",control:r,rules:{required:"Escribe un comentario"},render:({field:w,fieldState:{error:j}})=>t.jsx(f.Input,{fullWidth:!0,placeholder:"Escribe un comentario",autoComplete:"off",size:"xs",error:j==null?void 0:j.message,...w,value:w.value??""})})})]}),c&&c.map((w,j)=>t.jsx(To,{comment:w},j))]})}function Co({data:e}){const a={0:{color:"tm-bg-gray-400",label:"Sin estado"},1:{color:"tm-bg-primary-regular",label:"En curso"},2:{color:"tm-bg-success-regular",label:"Finalizada"},3:{color:"tm-bg-success-regular",label:"Finalizada"}},n=s=>s?mt.format(new Date(s),"d MMM",{locale:Mt.es}):"";return t.jsxs("div",{children:[t.jsxs("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-4",children:[t.jsx(f.Text,{children:"Tareas dependientes"}),t.jsx(f.Text,{className:"tm-flex tm-h-24 tm-w-24 tm-items-center tm-justify-center tm-rounded-full tm-bg-[#E1EBF9] tm-text-xs tm-font-normal tm-text-primary",children:e==null?void 0:e.length})]}),t.jsx("div",{className:"tm-mt-3 tm-flex tm-flex-col tm-gap-2 tm-rounded-lg tm-border tm-border-default",children:e==null?void 0:e.map(s=>{var o,i,r,l,d;return t.jsxs("div",{className:"tm-flex tm-w-full tm-flex-row tm-items-center tm-justify-between tm-gap-s tm-px-2 tm-py-1",children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[t.jsx(De,{imageUrl:(l=(r=(i=(o=s.responsable)==null?void 0:o.image)==null?void 0:i.formats)==null?void 0:r.thumbnail)==null?void 0:l.url}),t.jsx(f.Text,{children:s==null?void 0:s.texto_corto})]}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-1",children:[t.jsx(f.Text,{children:n(s==null?void 0:s.createdAt)}),t.jsx("div",{className:`tm-block tm-h-4 tm-w-4 tm-rounded-full tm-bg-gray-400 ${((d=a[s==null?void 0:s.estatus])==null?void 0:d.color)??"tm-bg-gray-400"}`})]})]},s.id)})})]})}function So({id:e,texto_largo:a,user_id:n}){const[s,o]=u.useState(a),{updatingTask:i}=He(),r=async()=>{await i({id:e,data:{texto_largo:s},user:n})};return u.useEffect(()=>{o(a)},[a]),t.jsx("div",{className:"tm-mt-16 tm-flex tm-w-full tm-flex-col tm-gap-3",children:t.jsx(f.Input,{fullWidth:!0,label:"Descripción",size:"md",value:s,onChange:l=>o(l.target.value),onBlur:r,autoComplete:"off",placeholder:"Agregar descripción"})})}function Qa({isOpen:e,setIsOpen:a,taskId:n}){var O,H,M,N,A,T,X,U,L;const[s,o]=u.useState(null),[i,r]=u.useState(!1),[l,d]=u.useState(!1),[c,m]=u.useState(null),g=(N=(M=(H=(O=s==null?void 0:s.responsable)==null?void 0:O.imagen)==null?void 0:H.formats)==null?void 0:M.thumbnail)==null?void 0:N.url,{tasks_api:x,getImageOBP:p}=pe(),{user:h}=je(),y=Number(s==null?void 0:s.estatus),w=Number.isFinite(y)?y:-1,j=ut(h==null?void 0:h.role,w);u.useEffect(()=>{if(e&&n||i){const I=async()=>{const D=await x.get(`/api/detalleTarea/${n}`);o(D==null?void 0:D.data)},V=async()=>{const D=await x.get(`/api/users/${h.id}`);m(D==null?void 0:D.data)};I(),V()}},[e,n,i,h.id,x]);const b=I=>I?mt.format(I,"d MMM yyyy, h:mmaaa",{locale:Mt.es}):"Fecha no disponible",v=[{id:1,label:"Todo",component:t.jsx(No,{taskId:n,currentUser:c,data:s,onNewComment:r})},{id:2,label:"Dependencias",component:t.jsx(Co,{data:s==null?void 0:s.ids_t_dependientes})}];return e&&Ft.createPortal(t.jsxs(t.Fragment,{children:[t.jsx("div",{className:`tm-fixed tm-inset-0 tm-z-20 tm-flex tm-items-center tm-justify-center tm-bg-transparent tm-bg-opacity-50 ${e?"tm-pointer-events-auto tm-block":"tm-pointer-events-none tm-hidden"}`,onClick:()=>a(!1)}),t.jsx("section",{className:`tm-fixed tm-bottom-0 tm-top-0 tm-z-50 tm-flex tm-h-screen tm-w-[550px] tm-items-center tm-justify-center tm-overflow-hidden tm-bg-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:t.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:[t.jsxs("div",{className:"tm-flex tm-w-full tm-flex-row tm-items-center tm-justify-between tm-gap-10 tm-border-none tm-pb-4",children:[t.jsxs("div",{className:"tm-relative tm-flex tm-flex-row tm-items-start tm-gap-8",children:[((A=s==null?void 0:s.id_t_requerida)==null?void 0:A.id)&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"tm-cursor-help",onMouseOver:()=>d(!0),onMouseLeave:()=>d(!1),children:t.jsx(f.Icon,{name:ne.faCircleInfo,size:"sm",style:{color:Ce.warning.regular},color:"current"})}),l&&(()=>{var V;const I=ot(s==null?void 0:s.id_t_requerida);return t.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:[t.jsx(f.Text,{type:"body",size:"sm",weight:"bold",children:"Requiere completar su tarea:"}),t.jsx(f.Text,{type:"body",size:"xs",weight:"medium",children:(V=s==null?void 0:s.id_t_requerida)==null?void 0:V.texto_corto}),I&&t.jsxs(f.Text,{type:"body",size:"xs",weight:"medium",children:["Responsable: ",t.jsx("span",{className:"tm-font-normal",children:I})]})]})})()]}),t.jsx("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-8",children:t.jsxs("h3",{className:"tm-text-base tm-font-semibold tm-text-neutral-900",children:[s==null?void 0:s.texto_corto,(s==null?void 0:s.atraso)&&t.jsx(f.Tooltip,{label:(T=s==null?void 0:s.atraso)==null?void 0:T.motivo,position:"bottom",children:t.jsx("button",{className:"tm-ml-2 tm-inline-block tm-h-fit tm-align-middle",children:t.jsx(f.Icon,{name:ne.faTriangleExclamation,size:"md",style:{color:Ce.warning.dark},color:"current"})})})]})})]}),t.jsx(f.Button,{color:"secondary",pill:"pill",size:"xs",onClick:()=>a(!1),icon:ne.faXmark})]}),t.jsx("div",{className:"tm-mt-6 tm-flex tm-w-full tm-flex-row tm-justify-between",children:t.jsxs("span",{className:"tm-text-xs tm-text-light-gray-700",children:[s==null?void 0:s.campania," / ",s==null?void 0:s.nombre_medio]})}),t.jsx(So,{id:n,texto_largo:s==null?void 0:s.texto_largo,user_id:h.id}),t.jsx(f.Accordion,{id:`details-task-detalles-${n}`,title:"Detalles",defaultOpen:!0,className:"tm-mt-6 tm-w-full",headerClassName:"tm-border-b tm-border-black-light tm-pb-4",children:t.jsxs("div",{className:"tm-gap-8 tm-grid tm-w-full tm-grid-cols-3 tm-p-4",children:[t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Responsable"}),(X=s==null?void 0:s.responsable)!=null&&X.nombre?t.jsxs("div",{className:"tm-flex tm-flex-row tm-items-center tm-gap-8",children:[t.jsx(De,{size:"xxl",imageUrl:g?p(g):"",alt:"@shadcn"}),t.jsx(f.Text,{children:(U=s==null?void 0:s.responsable)==null?void 0:U.nombre})]}):t.jsx(f.Text,{children:"Sin responsable"})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Equipo asignado"}),t.jsx("div",{className:"tm-flex tm-flex-row tm-gap-8",children:t.jsx(f.Text,{children:((L=s==null?void 0:s.equipo)==null?void 0:L.nombre)??"Sin equipo"})})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Prioridad"}),t.jsx(Ht,{priority:parseInt(String(s==null?void 0:s.prioridad),10)||0,id:n,withLabel:!0,canEdit:j})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Dificultad"}),t.jsx(Ut,{difficulty:(s==null?void 0:s.nivel_dificultad)!=null&&(s==null?void 0:s.nivel_dificultad)!==""?Number(s.nivel_dificultad):void 0,id:n,withLabel:!0,canEdit:j})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Lista"}),t.jsx("div",{className:"tm-flex tm-flex-row tm-gap-8",children:t.jsx(f.Text,{children:(s==null?void 0:s.lista)??"Sin lista"})})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Fecha estimada de inicio"}),t.jsx(f.Text,{children:b(s==null?void 0:s.f_inicio_estimada)})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Fecha estimada de fin"}),t.jsx(f.Text,{children:b(s==null?void 0:s.f_fin_estimada)})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Fecha de fin"}),t.jsx(f.Text,{children:b(s==null?void 0:s.ffin)})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Creado"}),t.jsx(f.Text,{children:b(s==null?void 0:s.createdAt)})]}),t.jsxs("div",{className:"tm-flex tm-w-auto tm-flex-col tm-gap-8",children:[t.jsx("span",{className:" tm-text-sm tm-font-semibold tm-leading-[100%] tm-tracking-normal",children:"Última modificación"}),t.jsx(f.Text,{children:b(s==null?void 0:s.updatedAt)})]})]})}),t.jsx(_o,{items:v})]})})]}),document.body)}class Eo{static toPauseReasons(a){return{id:a.id,motivo_imj:a.motivo_imj}}}const Po=async({tasks_api:e})=>{try{const a=await e.get("/api/motivos");return be(a.data).map(Eo.toPauseReasons)}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},Ao=()=>{const{tasks_api:e}=pe();return{pauseReasons:le.useQuery({queryKey:["pause_task_reasons"],queryFn:()=>Po({tasks_api:e}),staleTime:1e3*60*60*24})}};class Io{static toKanbanTasks(a){var i,r,l,d,c,m,g,x,p,h,y,w,j;const n=ot(a==null?void 0:a.id_t_requerida),s=ot(a==null?void 0:a.tarea_padre);let o=[];return a!=null&&a.responsable&&o.push({id:a.responsable.id,name:a.responsable.nombre,image:(c=(d=(l=(r=(i=a.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=a.responsable.userOBP)==null?void 0:m.role)||{id:0,name:""}}),(g=a==null?void 0:a.equipo)!=null&&g.miembros&&a.equipo.miembros.forEach(b=>{var v,O,H,M,N;o!=null&&o.find(A=>A.id===b.idUser.id)||b.idUser&&o.push({id:b.idUser.id,name:b.idUser.nombre,image:(M=(H=(O=(v=b==null?void 0:b.userOBP)==null?void 0:v.imagen)==null?void 0:O.formats)==null?void 0:H.thumbnail)==null?void 0:M.url,role:((N=b.userOBP)==null?void 0:N.role)||{id:0,name:""}})}),{paused:a==null?void 0:a.pausada,repeats:a==null?void 0:a.repeticiones_realizadas,repeatsToDo:a==null?void 0:a.repeticiones,comments:0,nameProject:(x=a==null?void 0:a.proyecto)==null?void 0:x.nombre,idProject:(p=a==null?void 0:a.proyecto)==null?void 0:p.id,willBePaused:a.es_pausable,difficulty:a.nivel_dificultad,endDate:new Date(a.ffin),id:a.id,priority:a.prioridad??0,status:a.estatus,task:a.texto_corto,users:o,responsible:((h=a==null?void 0:a.responsable)==null?void 0:h.id)??null,name_father_required_task:((y=a==null?void 0:a.tarea_padre)==null?void 0:y.texto_corto)??null,name_father_required_task_responsible:s,statusRequiredTask:((w=a.id_t_requerida)==null?void 0:w.estatus)??null,nameRequiredTask:((j=a.id_t_requerida)==null?void 0:j.texto_corto)??null,nameRequiredTaskResponsible:n,medioName:(a==null?void 0:a.nombre_medio)??null,atraso:(a==null?void 0:a.atraso)??null,categoria:(a==null?void 0:a.categoria)??null,...(a==null?void 0:a.cambio_arte)&&{cambio_arte:a==null?void 0:a.cambio_arte}}}}const pt=async({filters:e,tasks_api:a})=>{try{const s=(await a.get("/api/listado_tareas?populate=*",{params:{...e,cancelada:!1}})).data.tareas.map(be),o=new Set;if(s.forEach(i=>{var r;(r=i==null?void 0:i.id_t_requerida)!=null&&r.id&&o.add(i.id_t_requerida.id)}),o.size>0){const i=Array.from(o),r=Ee.stringify({filters:{id:{$in:i}},populate:{responsable:{fields:["id","nombre"]},equipo:{fields:["id","nombre"]}}},{encodeValuesOnly:!0});try{const l=await a.get(`/api/tareas?${r}`),d=be(l.data.data||l.data),c=Array.isArray(d)?d:[d],m=new Map(c.map(g=>[g.id,g]));s.forEach(g=>{var x;if((x=g==null?void 0:g.id_t_requerida)!=null&&x.id){const p=m.get(g.id_t_requerida.id);p&&(g.id_t_requerida={...g.id_t_requerida,responsable:p.responsable||null,equipo:p.equipo||null})}})}catch{}}return s.map(Io.toKanbanTasks)}catch(n){throw console.log({error:n}),`Error al obtener las tareas: ${n}`}},Kt=30,Vt=e=>{var a;if(e!=null&&e.hasNextPage){const n=(a=e==null?void 0:e.data)==null?void 0:a.pages[e.data.pages.length-1];(n==null?void 0:n.length)===Kt&&(e==null||e.fetchNextPage())}},Ge=e=>({pagination:{page:e,pageSize:Kt,withCount:!0}}),Xa=()=>{var c;const e=le.useQueryClient(),{tasks_api:a}=pe(),{user:n}=je(),{filters:s}=Me(),[o,i]=u.useState(0),[r,l]=u.useState({owner:{user:n.id,config:((c=s==null?void 0:s.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:n.role},status:"por_hacer"}),d=le.useInfiniteQuery({initialPageParam:1,queryKey:["to_do_tasks",r],queryFn:({pageParam:m})=>pt({filters:{...r,status:"por_hacer",...Ge(m)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(m,g)=>g.length+1});return u.useEffect(()=>{var m;Object.keys(s).length>0&&l({...s,owner:{user:n.id,config:((m=s==null?void 0:s.owner)==null?void 0:m.config)??"yo_y_mis_equipos",role:n.role},status:"por_hacer"})},[s]),u.useEffect(()=>{e.invalidateQueries({queryKey:["to_do_tasks",r]})},[r]),u.useEffect(()=>{(async()=>{const g=await a.get("/api/listado_tareas",{params:{...r,status:"por_hacer",cancelada:!1,...Ge(1),tasks_api:a,justCount:!0}});i(g.data.total)})()},[r,d==null?void 0:d.data]),{toDoTasks:d,total:o,filtersToSend:r}};function Do(e){return(e??[]).map(a=>({id:a.id,label:a.motivo_imj}))}const Fo=({idTask:e,setOpen:a,paused:n})=>{const s=le.useQueryClient(),{toDoTasks:o,filtersToSend:i}=Xa(),[r,l]=u.useState(!1),[d,c]=u.useState(null),{tasksProject:m}=at(),{postPauseTask:g,postReanudeTask:x}=He(),{pauseReasons:p}=Ao(),h=Do(p==null?void 0:p.data),y=async()=>{try{if(d==null)return;if(a(!1),await g({id:e,motiveId:d}),await s.invalidateQueries({queryKey:["to_do_tasks",i]}),await s.invalidateQueries({queryKey:["tasksProject"]}),o&&typeof o.refetch=="function"||m&&typeof m.refetch=="function"){const j=await o.refetch(),b=await m.refetch();return[j,b]}}catch(j){console.error("Error al pausar la tarea:",j)}},w=async()=>{try{if(a(!1),await x({id:e}),await s.invalidateQueries({queryKey:["to_do_tasks",i]}),await s.invalidateQueries({queryKey:["tasksProject"]}),o&&typeof o.refetch=="function"||m&&typeof m.refetch=="function"){const j=await o.refetch(),b=await m.refetch();return[j,b]}}catch(j){console.error("Error al reanudar la tarea:",j)}};return t.jsx("div",{className:"tm-flex tm-w-[300px] tm-max-w-[300px] tm-items-center !tm-p-4",children:t.jsxs("div",{className:"tm-flex tm-w-full tm-flex-col tm-gap-s ",children:[t.jsx("h6",{className:"tm-font-regular tm-text-texts-subtext tm-truncate tm-text-xl",children:"Pausar tarea:"}),r?t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-s",children:[t.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"Esta acción detendrá la campaña en curso."}),t.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):n?t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-s",children:[t.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"Esta acción reanudará la campaña en curso."}),t.jsx("p",{className:"tm-text-xl tm-font-medium tm-text-neutral-600",children:"¿Estás seguro de continuar?"})]}):t.jsx(f.Dropdown,{field:{placeholder:"Selecciona una razón"},items:{options:h,idName:"id"},values:{value:d??""},menuSearch:{searchable:!0,searchPlaceholder:"Buscar"},popover:{absolute:!1,closeOnClickOutside:!0,dropdownId:`task-pause-motivo-${e}`,popoverZIndex:1200},events:{onValueChange:j=>{const b=Number(j);Number.isNaN(b)||c(b)},onOptionSelect:j=>{const b=Number(j.id);Number.isNaN(b)||c(b)}}}),t.jsxs("div",{className:"tm-mt-5 tm-flex tm-w-full tm-justify-end tm-gap-m",children:[t.jsx(f.Button,{type:"button",onClick:()=>a(!1),size:"xs",color:"secondary",children:"Cancelar"}),n?t.jsx(f.Button,{type:"button",onClick:()=>w(),size:"xs",color:"primary",children:"Si, reanudar"}):t.jsx(f.Button,{type:"button",disabled:!d,onClick:()=>r?y():l(!0),size:"xs",color:"primary",children:"Aceptar"})]})]})})},Ya=({idTask:e,paused:a,popupId:n,children:s})=>{const o=u.useRef(null),i=u.useRef(null),[r,l]=u.useState(!1),[d,c]=u.useState(0),m=`task-pause-motivo-${e}`,g=u.useCallback(()=>{var x;(x=o.current)==null||x.close()},[]);return u.useEffect(()=>{if(!r)return;const x=p=>{const h=p.target;h instanceof Element&&(h.closest(`[data-popup-id="${n}"]`)||h.closest(`[data-dropdown-id="${m}"]`))||g()};return window.addEventListener("scroll",x,!0),document.addEventListener("scroll",x,!0),()=>{window.removeEventListener("scroll",x,!0),document.removeEventListener("scroll",x,!0)}},[r,g,n,m]),t.jsxs(t.Fragment,{children:[s(i),t.jsx(f.Popup,{ref:o,triggerRef:i,popupId:n,position:"bottom-left",offset:5,closeOnClick:!1,closeOnClickOutside:!1,popoverArrow:!1,onOpen:()=>{l(!0),c(x=>x+1)},onClose:()=>l(!1),children:t.jsx(Fo,{idTask:e,paused:a,setOpen:x=>{x||g()}},d)})]})},Mo=({id:e,task:a,endDate:n,users:s,willBePaused:o,nameProject:i,comments:r,priority:l,difficulty:d,responsible:c,nameRequiredTask:m,nameRequiredTaskResponsible:g,statusRequiredTask:x,status:p,repeatsToDo:h,repeats:y,medioName:w,paused:j,idProject:b,atraso:v,categoria:O,cambio_arte:H,name_father_required_task:M,name_father_required_task_responsible:N,boardColumnTitle:A,isBulkColumnLocked:T=!1})=>{const[X,U]=u.useState(!1),L=u.useId(),{reasignResponsible:I,updateUnitys:V}=He(),{getOBPUrlApi:D}=pe(),[q,B]=u.useState(y??0),$=!!(h&&y===h),Y=!h||h===1,z=p===0,re=($||Y||z)&&p!==2,ee=(m??"")!==""&&x===2,{user:S}=je(),K=ut(S==null?void 0:S.role,p),G=zt(),k=!!(G!=null&&G.selectedTaskIds.includes(e)),P=re&&(ee||!m),W=!!G&&!!A&&A!=="Completadas"&&!T,E=W&&P,C=W&&!P&&!!(G!=null&&G.isBulkSessionActive),R=!!(G!=null&&G.isMultiSelectActive&&E&&ee),F=!E||!!(G!=null&&G.isBulkLoading),_=te=>{!G||!A||F||G.toggleTaskSelection(e,A)},Q=()=>t.jsxs("div",{className:"tm-relative tm-flex tm-h-fit tm-w-full tm-items-center tm-justify-between",children:[t.jsxs("div",{className:"tm-flex tm-min-w-0 tm-flex-1 tm-flex-row tm-items-start tm-gap-[8px]",children:[p<2&&(M||$||Y||z)&&t.jsx("span",{"data-prevent-bulk-select":!0,children:t.jsx(Wa,{id:e,nameRequiredTask:m??"",statusRequiredTask:x??0,status:p,idAtraso:v==null?void 0:v.atrasoId,nameRequiredTaskResponsible:g,name_father_required_task:M,name_father_required_task_responsible:N,repeatsAreCompleted:$})}),t.jsx("p",{className:"tm-w-full tm-overflow-hidden tm-text-ellipsis tm-text-nowrap tm-text-base tm-text-neutral-900","data-prevent-bulk-select":!0,onClick:te=>{te.stopPropagation(),U(!0)},children:a})]}),P&&t.jsxs("div",{className:"tm-flex tm-shrink-0 tm-items-center tm-gap-2","data-prevent-bulk-select":!0,children:[G?t.jsx("div",{className:"tm-flex tm-items-center tm-pt-0.5 tm-pr-2",children:t.jsx(f.Checkbox,{id:`kanban-bulk-select-${e}-${L}`,size:"sm",checked:k,disabled:F,onChange:_})}):null,t.jsx(jo,{id:e,nameRequiredTask:m,status:p,statusRequiredTask:x,projectID:b,atrasoId:v==null?void 0:v.atrasoId,categoria:O,disabled:R})]})]}),Z=te=>{B(fe=>te==="minus"?Math.max(0,fe-1):Math.min(h,fe+1))},ae=te=>{var fe;return((fe=te==null?void 0:te.charAt(0))==null?void 0:fe.toUpperCase())??""},ie=te=>te==="Venta"?"accent":"danger",J=T||!!(G!=null&&G.isBulkLoading),se=C?"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 t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:`tm-relative tm-h-fit tm-max-w-[350px] tm-rounded-lg tm-border tm-p-[12px_12px] tm-transition-all tm-duration-300 ${se} ${k?"tm-border-blue-500 tm-bg-primary-light":"tm-border-transparent tm-bg-surface-default"} ${J?"tm-pointer-events-none":""}`,children:[t.jsx(Q,{}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-[4px] tm-py-2",children:[t.jsx("p",{className:"tm-font-regular tm-max-w-[250px] tm-truncate tm-text-xs tm-text-texts-subtext",children:i}),w&&t.jsx(f.Text,{type:"body",size:"sm",weight:"medium",children:w})]}),H&&t.jsx(f.Badge,{label:H.nombre,color:"gray",icon:ne.faImage,size:"md",theme:"solid"}),t.jsxs("div",{"data-prevent-bulk-select":!0,className:"tm-relative tm-flex tm-h-fit tm-w-full tm-items-center tm-justify-between tm-pb-1 tm-pt-5",children:[t.jsxs("div",{className:"tm-relative tm-flex tm-items-center",children:[t.jsx(Ga,{responsible:c,role:S==null?void 0:S.role,status:p,users:s.filter(te=>c?te.id===c:!0).map(te=>qt(te,D())),onClick:async(te,fe)=>{await I({idNewResponsible:te,id:e,typeOfSelect:fe})}}),o&&t.jsx(Ya,{idTask:e,paused:j,popupId:`task-pause-menu-${e}`,children:te=>t.jsx("button",{ref:te,type:"button",className:"tm-font-regular tm-flex !tm-h-[32px] !tm-w-[32px] tm-items-center tm-justify-center tm-gap-2 tm-text-sm tm-text-gray-400",children:t.jsx(f.Icon,{name:j?ne.faPlay:ne.faPause,size:"xs",color:"current"})})})]}),t.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-8",children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[t.jsx(f.Badge,{label:ae((O==null?void 0:O.tipo)??"P"),color:ie((O==null?void 0:O.tipo)??"Preventa"),size:"sm",theme:"solid"}),v&&t.jsx(Fe,{trigger:t.jsx(f.Icon,{name:ne.faTriangleExclamation,size:"sm",color:"warning"}),children:t.jsx(f.Text,{color:"warning",children:`Tarea atrasada debido a: ${v==null?void 0:v.motivo}`})}),t.jsx(Ut,{difficulty:d,id:e,canEdit:K}),t.jsx(Ht,{priority:l,id:e,canEdit:K}),!h||h&&p===0&&t.jsxs(t.Fragment,{children:[t.jsx(f.Icon,{name:ne.faCalendar,size:"xs",color:"primary"}),t.jsx(f.Text,{color:"primary",children:`${n.getDate()} ${Rt(n.getMonth()).slice(0,3)}`})]})]}),p===1&&h&&h>0&&t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-m",children:[t.jsx(f.Text,{color:"primary",children:"unidades"}),t.jsx("button",{onClick:()=>Z("minus"),className:"tm-mr-[4px] tm-flex tm-w-[0] tm-items-center tm-justify-center tm-rounded-full tm-bg-surface-default hover:tm-bg-surface-hover",children:t.jsx(f.Icon,{name:ne.faCircleMinus,size:"xs",color:"primary"})}),t.jsx(f.Text,{color:"primary",children:`${q??0} / ${h??0}`}),t.jsx("button",{onClick:()=>Z("plus"),className:"tm-ml-[4px] tm-flex tm-w-[0] tm-items-center tm-justify-center tm-rounded-full tm-bg-surface-default hover:tm-bg-surface-hover",children:t.jsx(f.Icon,{name:ne.faCirclePlus,size:"xs",color:"primary"})}),t.jsx("button",{className:"tm-ml-[4px] tm-rounded-md tm-bg-surface-brand-default tm-px-m tm-py-s tm-text-xs tm-text-on-color",onClick:()=>{V({repeats:q,id:e})},children:"Agregar Unidad"})]})]})]}),r>0&&t.jsx("div",{className:"tm-mt-4 tm-border-t tm-border-default tm-pt-2",children:t.jsxs("button",{type:"button","data-prevent-bulk-select":!0,onClick:te=>{te.stopPropagation(),U(!0)},className:"tm-flex tm-items-center tm-gap-8",children:[t.jsx(f.Icon,{name:ne.faComment,size:"xs",color:"current"}),t.jsx("span",{className:"tm-font-regular tm-text-xl tm-text-gray-400",children:r})]})})]}),t.jsx(Qa,{taskId:e,isOpen:X,setIsOpen:U})]})},ft=({title:e,tasks:a,loadNextPage:n,isFetching:s,total:o,bulkSelectAllIds:i})=>{const r=u.useRef(null),l=u.useRef(null),d=u.useRef(!1);u.useEffect(()=>{var w;r!=null&&r.current&&(l!=null&&l.current)&&(l.current.style.minHeight=`${((w=r==null?void 0:r.current)==null?void 0:w.clientHeight)-300}px`)},[r==null?void 0:r.current]);const c=w=>{if(d.current)return;const{scrollTop:j,clientHeight:b,scrollHeight:v}=w==null?void 0:w.target,O=j/(v-b)*100;O<=95||O>=95&&(d.current=!0,n&&n(),setTimeout(()=>{d.current=!1},200))},m={"Por hacer":"tm-border-texts-placeholder",Trabajando:"tm-border-primary-regular",Completadas:"tm-border-success-regular"},g=zt(),x=e,p=!!(g!=null&&g.baseColumn&&g.baseColumn!==e),h=!!g&&e!=="Completadas"&&(g==null?void 0:g.isBulkSessionActive)&&g.baseColumn===e&&typeof i=="function",y=()=>{if(!(!g||!i)){if(g.isFullColumnSelected){g.deselectAllSelectedTasks();return}g.selectEntireColumn(x,i)}};return t.jsxs("div",{ref:r,className:`tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-fit tm-min-w-[400px] tm-max-w-[400px] tm-flex-col tm-overflow-hidden tm-rounded-lg tm-border-t-4 tm-bg-canvas tm-p-[16px] ${m[e]} ${p?"tm-opacity-40":""}`,children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between",children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-w-full",children:[t.jsx("p",{className:"tm-text-sm",children:e}),h&&t.jsx("button",{type:"button",className:"tm-text-base tm-text-brand disabled:tm-cursor-not-allowed disabled:tm-opacity-50 tm-mx-3",disabled:g==null?void 0:g.isBulkLoading,onClick:y,children:g!=null&&g.isBulkLoading?"Cargando…":g!=null&&g.isFullColumnSelected?"Quitar Selección":"Seleccionar todas"})]}),t.jsx("div",{className:"tm-flex tm-items-center tm-gap-[8px]",children:t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-[4px]",children:[t.jsx(f.Icon,{name:ne.faFiles,size:"sm",color:"secondary"}),t.jsx("p",{className:"tm-text-base tm-text-texts-placeholder",children:o??0})]})})]}),t.jsxs("div",{ref: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:[a==null?void 0:a.map(w=>t.jsx(Mo,{...w,boardColumnTitle:g?x:void 0,isBulkColumnLocked:!!(g&&p)},w.id)),s?t.jsx(ao,{}):t.jsx("p",{className:"tm-text-center tm-text-sm tm-text-light-gray-900",children:"No hay más tareas por mostrar..."})]})]})},xa=[{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"}]}],ko=()=>{const{user:e}=je(),[a,n]=u.useState([...xa]),s=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return u.useEffect(()=>{const o=[...xa];s.forEach(l=>{if(l.roles.includes(e.role)){const d=o.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(a),r=JSON.stringify(o);i!==r&&n(o)},[e.role]),{filters:a}},Oo="/api/tareas/bulk-update-status";async function Lo(e,a){const{data:n}=await e.post(Oo,a);return n}function Bo(e){var a,n,s,o;if(tt.isAxiosError(e)){const i=(a=e.response)==null?void 0:a.status,r=(n=e.response)==null?void 0:n.data;if(i===400){if(typeof r=="string"&&r.trim().length>0)return r.trim();if(r&&typeof r=="object"){const l=r.message;if(typeof l=="string"&&l.trim())return l.trim();const d=(s=r.details)==null?void 0:s.errors,c=(o=d==null?void 0:d[0])==null?void 0:o.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 Ro(){const{tasks_api:e}=pe(),{user:a}=je();return le.useMutation({mutationKey:["tareas","bulk-update-status"],mutationFn:async n=>{const s=n.user_id??(a==null?void 0:a.id);if(s==null||s<1)throw new Error("No hay usuario válido para la actualización masiva.");try{return await Lo(e,{...n,user_id:s})}catch(o){throw new Error(Bo(o))}}})}const wt={MOVE_TO_TRABAJANDO:"kanban-bulk-move-trabajando",MOVE_TO_POR_HACER:"kanban-bulk-move-por-hacer",MOVE_TO_COMPLETADAS:"kanban-bulk-move-completadas"};function qo(e){const{isBulkLoading:a}=e;return[{type:"button",label:"Cancelar",icon:ne.faXmark,color:"secondary",pill:"pill",disabled:a,onClick:()=>{a||(e.setPendingTargetStatus(null),e.setActiveButtonId(null))}},{type:"button",label:"Confirmar",icon:ne.faCheck,color:"secondary",pill:"pill",disabled:a,onClick:()=>{a||e.onConfirmBulkMove()}}]}const vt="secondary";function zo(e){const a=qo({setActiveButtonId:e.setActiveButtonId,setPendingTargetStatus:e.setPendingTargetStatus,onConfirmBulkMove:e.onConfirmBulkMove,isBulkLoading:e.isBulkLoading});return e.baseColumn==="Por hacer"?[{id:wt.MOVE_TO_TRABAJANDO,label:"Mover a trabajando",icon:ne.faArrowRight,color:vt,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(1)},addons:a}]:e.baseColumn==="Trabajando"?[{id:wt.MOVE_TO_POR_HACER,label:"Mover a por hacer",icon:ne.faArrowLeft,color:vt,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(0)},addons:a},{id:wt.MOVE_TO_COMPLETADAS,label:"Mover a completadas",icon:ne.faArrowRight,color:vt,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(2)},addons:a}]:[]}const $o="Seleccionados";function Ja(){const e=zt(),[a,n]=u.useState(null),s=a!==null,o=le.useQueryClient(),{mutate:i}=Ro(),r=(e==null?void 0:e.selectedTaskIds.length)??0;u.useEffect(()=>{r===0&&n(null)},[r]);const l=u.useCallback(()=>{e!=null&&e.isBulkLoading||e==null||e.setPendingTargetStatus(null)},[e]),d=u.useCallback(()=>{n(null),e==null||e.exitBulkSelectionMode()},[e]),c=u.useCallback(()=>{if(!e)return;const g=e.pendingTargetStatus,x=e.selectedTaskIds;if(g==null||x.length===0)return;const p={tasks_ids:[...x],estatus:g,...g===2?{ended_at:new Date().toISOString()}:{}};e.setIsBulkLoading(!0),i(p,{onSettled:()=>{e.setIsBulkLoading(!1)},onSuccess:async()=>{await e.invalidateAfterBulkSuccess(o),n(null),e.exitBulkSelectionMode()},onError:()=>{n(null),e.setPendingTargetStatus(null)}})},[e,i,o]),m=u.useMemo(()=>e?zo({baseColumn:e.baseColumn,setPendingTargetStatus:e.setPendingTargetStatus,setActiveButtonId:n,onConfirmBulkMove:c,isBulkLoading:e.isBulkLoading}):[],[e,c]);return!e||r===0||e.baseColumn!=="Por hacer"&&e.baseColumn!=="Trabajando"?null:t.jsx(f.Toolbar,{visible:!0,count:r,text:$o,activeButtonId:a,onActiveButtonIdChange:n,onBackClick:l,buttons:m,onClose:d,showCounterInButtonsView:!s,showBackButton:!s,showCloseButton:!s})}const Za=["to_do_tasks","working_tasks","done_tasks"],Uo="tasksProject";function Ho(e){return Promise.all(Za.map(a=>e.invalidateQueries({queryKey:[a]}))).then(()=>{})}function Ko(e){return Promise.all(Za.flatMap(a=>[e.invalidateQueries({queryKey:[a]}),e.refetchQueries({queryKey:[a]})])).then(()=>{})}function Vo(e){return e.invalidateQueries({queryKey:[Uo]}).then(()=>{})}function Go(e){const a=!!(e.repeatsToDo&&e.repeats===e.repeatsToDo),n=!e.repeatsToDo||e.repeatsToDo===1,s=e.status===0;return a||n||s}function Wo(e,a){return(e??"")!==""&&(a??0)===2||!(e??"")}function es(e){return e.status===2||!Go(e)?!1:Wo(e.nameRequiredTask,e.statusRequiredTask)}const Qo=["Por hacer","Trabajando","Completadas"],Xo=()=>{const{defineFields:e}=Me(),{tasksProject:a}=at(),{filters:n}=ko();u.useEffect(()=>{(async()=>{let i=[...n];e(i)})()},[]);const s=u.useMemo(()=>{var o;return(o=a==null?void 0:a.data)==null?void 0:o.filter(i=>{var r;return((r=i==null?void 0:i.tasks)==null?void 0:r.length)===0}).reduce((i,r)=>(i[r.status]=i[r.status]||[],i[r.status].push(r),i),{})},[a==null?void 0:a.data]);return t.jsxs(Ha,{invalidateAfterBulkSuccess:Vo,children:[t.jsx(Ja,{}),t.jsx("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-gap-8",children:Qo.map((o,i)=>{const r=(s==null?void 0:s[i])??[];return t.jsx(ft,{total:r.length,title:o,tasks:r,isFetching:a==null?void 0:a.isFetching,isLoadingData:a==null?void 0:a.isLoading,bulkSelectAllIds:()=>Promise.resolve(r.filter(l=>es({status:l.status,nameRequiredTask:l.nameRequiredTask,statusRequiredTask:l.statusRequiredTask,repeatsToDo:l.repeatsToDo,repeats:l.repeats})).map(l=>l.id))},o)})})]})};async function ts(e){const a=[];let n=1;for(;;){const s=await pt({filters:{...e.filters,status:e.status,...Ge(n)},tasks_api:e.tasks_api});for(const o of s)es({status:o.status,nameRequiredTask:o.nameRequiredTask,statusRequiredTask:o.statusRequiredTask,repeatsToDo:o.repeatsToDo,repeats:o.repeats})&&a.push(o.id);if(s.length<Kt)break;n+=1}return a}const Yo=()=>{var i,r;const{tasks_api:e}=pe(),{toDoTasks:a,total:n,filtersToSend:s}=Xa(),o=[...((r=(i=a==null?void 0:a.data)==null?void 0:i.pages)==null?void 0:r.flat())??[]];return t.jsx(ft,{total:n,title:"Por hacer",tasks:o,loadNextPage:()=>Vt(a),isFetching:a==null?void 0:a.isFetching,isLoadingData:a==null?void 0:a.isLoading,bulkSelectAllIds:()=>ts({tasks_api:e,filters:s,status:"por_hacer"})})},Jo=()=>{var c;const e=le.useQueryClient(),{tasks_api:a}=pe(),{user:n}=je(),{filters:s}=Me(),[o,i]=u.useState(0),[r,l]=u.useState({owner:{user:n.id,config:((c=s==null?void 0:s.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:n.role},status:"trabajando"}),d=le.useInfiniteQuery({initialPageParam:1,queryKey:["working_tasks",r],queryFn:({pageParam:m})=>pt({filters:{...r,status:"trabajando",...Ge(m)},tasks_api:a}),staleTime:1e3*60*60*24,getNextPageParam:(m,g)=>g.length+1});return u.useEffect(()=>{var m;Object.keys(s).length>0&&l({...s,owner:{user:n.id,config:((m=s==null?void 0:s.owner)==null?void 0:m.config)??"yo_y_mis_equipos",role:n.role},status:"trabajando"})},[s]),u.useEffect(()=>{e.invalidateQueries({queryKey:["working_tasks",r]})},[r]),u.useEffect(()=>{(async()=>{const g=await a.get("/api/listado_tareas",{params:{...r,status:"trabajando",cancelada:!1,...Ge(1),tasks_api:a,justCount:!0}});i(g.data.total)})()},[r,d==null?void 0:d.data]),{workingTasks:d,total:o,filtersToSend:r}},Zo=()=>{var i,r;const{tasks_api:e}=pe(),{workingTasks:a,total:n,filtersToSend:s}=Jo(),o=[...((r=(i=a==null?void 0:a.data)==null?void 0:i.pages)==null?void 0:r.flat())??[]];return t.jsx(ft,{total:n,title:"Trabajando",tasks:o,loadNextPage:()=>Vt(a),isFetching:a==null?void 0:a.isFetching,bulkSelectAllIds:()=>ts({tasks_api:e,filters:s,status:"trabajando"})})},er=()=>{var c;const e=le.useQueryClient(),{user:a}=je(),{tasks_api:n}=pe(),{filters:s}=Me(),[o,i]=u.useState(0),[r,l]=u.useState({owner:{user:a.id,config:((c=s==null?void 0:s.owner)==null?void 0:c.config)??"yo_y_mis_equipos",role:a.role},status:"completadas"}),d=le.useInfiniteQuery({initialPageParam:1,queryKey:["done_tasks",r],queryFn:({pageParam:m})=>pt({filters:{...r,status:"completadas",...Ge(m)},tasks_api:n}),staleTime:1e3*60*60*24,getNextPageParam:(m,g)=>g.length+1});return u.useEffect(()=>{var m;Object.keys(s).length>0&&l({...s,owner:{user:a.id,config:((m=s==null?void 0:s.owner)==null?void 0:m.config)??"yo_y_mis_equipos",role:a.role},status:"completadas"})},[s]),u.useEffect(()=>{e.invalidateQueries({queryKey:["done_tasks",r]})},[r]),u.useEffect(()=>{(async()=>{const g=await n.get("/api/listado_tareas",{params:{...r,status:"completadas",cancelada:!1,...Ge(1),justCount:!0,tasks_api:n}});i(g.data.total)})()},[d==null?void 0:d.data,r]),{doneTasks:d,total:o,filtersToSend:r}},tr=()=>{var s,o;const{doneTasks:e,total:a}=er(),n=[...((o=(s=e==null?void 0:e.data)==null?void 0:s.pages)==null?void 0:o.flat())??[]];return t.jsx(ft,{title:"Completadas",tasks:n,loadNextPage:()=>Vt(e),isFetching:e==null?void 0:e.isFetching,total:a})};class dt{static toSalesmanUsers(a){return{id:a.id,name:a.nombre}}}const ar=()=>{const{tasks_api:e}=pe(),{filters:a}=Me(),{user:n}=je(),s=async()=>(await e.get("/api/obtener-comerciales")).data.map(dt.toSalesmanUsers),o=async()=>{var l;return(await e.get("/api/listado_tareas",{params:{...Zt(a),owner:{user:n.id,config:((l=a==null?void 0:a.owner)==null?void 0:l.config)??"yo_y_mis_equipos",role:n.role},justProjects:!0,cancelada:!1}})).data.map(dt.toSalesmanUsers)};return{getSalesmanAndProjects:u.useCallback(async(r={})=>{var p;const l={...a,...r},d=(r==null?void 0:r["owner.config"])??((p=a==null?void 0:a.owner)==null?void 0:p.config)??"yo_y_mis_equipos",c={...l};delete c["owner.config"];const m=Zt(c),[g,x]=await Promise.all([e.get("/api/obtener-comerciales"),e.get("/api/listado_tareas",{params:{...m,owner:{user:n==null?void 0:n.id,config:d,role:n.role},justProjects:!0,cancelada:!1}})]);return{salesmanUsers:g.data.map(dt.toSalesmanUsers),projects:x.data.map(dt.toSalesmanUsers)}},[e,a,n==null?void 0:n.id,n==null?void 0:n.role]),getProjects:o,getSalesmans:s}},sr=()=>{const{user:e}=je(),[a,n]=u.useState([...ta]),s=[{roles:["Project Manager","Manager","Operation Manager"],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return u.useEffect(()=>{const o=[...ta];s.forEach(l=>{if(l.roles.includes(e.role)){const d=o.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(a),r=JSON.stringify(o);i!==r&&n(o)},[e.role]),{filters:a}},nr=()=>{const{defineFields:e,initialFilters:a}=Me(),{getSalesmanAndProjects:n}=ar(),{filters:s}=sr(),o=(a==null?void 0:a["owner.config"])??"yo_y_mis_equipos";return u.useEffect(()=>{let i=!1;return(async()=>{const{salesmanUsers:l,projects:d}=await n({"owner.config":o});i||e(s.map(c=>c.id==="project.id"?{...c,options:d}:c.id==="salesman.id"?{...c,options:l}:c))})(),()=>{i=!0}},[e,s,n,o]),t.jsxs(Ha,{invalidateAfterBulkSuccess:Ho,children:[t.jsx(Ja,{}),t.jsxs("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-gap-8",children:[t.jsx(Yo,{}),t.jsx(Zo,{}),t.jsx(tr,{})]})]})},as=u.createContext({}),or=({children:e})=>{const[a,n]=u.useState([]),s=o=>{n(i=>i.includes(o)?i.filter(r=>r!==o):[...i,o])};return t.jsx(as.Provider,{value:{selectedTasks:a,selectTask:s},children:e})},rr=()=>u.useContext(as),ir=()=>{const e=()=>t.jsxs("div",{className:"tm-flex tm-w-full tm-gap-m",children:[t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-full tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-w-[30%] tm-animate-pulse tm-rounded-md tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-w-[10%] tm-animate-pulse tm-rounded-md tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-w-[10%] tm-animate-pulse tm-rounded-md tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"}),t.jsx("div",{className:"tm-h-[30px] tm-min-h-[30px] tm-w-[30px] tm-min-w-[30px] tm-animate-pulse tm-rounded-lg tm-bg-gray-200"})]});return t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-m",children:[t.jsx(e,{}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-m tm-pl-5",children:[t.jsx(e,{}),t.jsx("div",{className:"tm-pl-5",children:t.jsx(e,{})})]}),t.jsx(e,{}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-m tm-pl-5",children:[t.jsx(e,{}),t.jsx("div",{className:"tm-pl-5",children:t.jsx(e,{})})]})]})},ss=({startDate:e,endDate:a})=>t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"tm-flex tm-h-[30px] tm-w-fit tm-items-center tm-justify-center tm-gap-s tm-rounded-md tm-bg-surface-default tm-px-xl",children:[t.jsx(f.Icon,{name:ne.faCalendar,size:"xs",color:"current"}),t.jsxs(f.Text,{children:[" ",da(e)]})]}),t.jsx(f.Icon,{name:ne.faArrowRight,size:"xs",color:"current"}),t.jsxs("div",{className:"tm-flex tm-h-[30px] tm-w-fit tm-items-center tm-justify-center tm-gap-s tm-rounded-md tm-bg-surface-default tm-px-xxxl",children:[t.jsx(f.Icon,{name:ne.faCalendar,size:"xs",color:"current"}),t.jsxs(f.Text,{children:[" ",da(a)]})]})]}),ns=({id:e,priority:a,difficulty:n,endDate:s,atraso:o,role:i,status:r})=>{const[l,d]=u.useState(!1),c=ut(i,r),m={0:{title:"N/A",color:Ce.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:Ce.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:Ce.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:Ce.danger.regular,bg:"tm-bg-danger-light tm-border-danger-regular",border:"tm-border-danger-regular",borderHover:"hover:tm-border-danger-dark"}},g={1:{title:"Muy fácil",color:Ce.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:Ce.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:Ce.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:Ce.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:Ce.danger.dark,iconColor:"danger",bg:"tm-bg-danger-light tm-border-danger-regular",border:"tm-border-danger-medium",borderHover:"hover:tm-border-danger-dark"}},x=()=>{if(n==null||Number.isNaN(Number(n)))return 1;const j=Math.trunc(Number(n));return j===0?1:j>=1&&j<=5?j:1},p=()=>{if(a==null||Number.isNaN(Number(a)))return 0;const j=Math.trunc(Number(a));return j>=0&&j<=3?j:0},h=g[x()]??g[1],y=m[p()]??m[0],w=s instanceof Date&&!Number.isNaN(s.getTime())?`${s.getDate()} ${Rt(s.getMonth()).slice(0,3)}`:"—";return t.jsxs(t.Fragment,{children:[t.jsx("button",{type:"button",className:"tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center tm-gap-8 tm-rounded-[8px] tm-bg-surface-default hover:tm-bg-surface-hover",children:t.jsx(Fe,{trigger:t.jsx(f.Icon,{name:ne.faAlignCenter,size:"xs",color:"current"}),children:t.jsx("div",{className:"tm-px-8 tm-py-4",children:t.jsx(f.Text,{children:"Espéralo muy pronto..."})})})}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[t.jsx("div",{className:`tm-gap-s ${h.border} ${h.borderHover} transition-all duration-300 tm-flex tm-h-[30px] tm-w-[30px] tm-items-center tm-justify-center
6
- tm-rounded-[8px] tm-border tm-shadow-[0px_0px_2px_0px_rgba(37,37,37,0.10)]`,children:t.jsx(Ut,{difficulty:n,id:e,canEdit:c})}),t.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:t.jsx(Ht,{priority:p(),id:e,canEdit:c})}),(o==null?void 0:o.activa)&&t.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:t.jsx(Fe,{trigger:t.jsx(f.Icon,{name:ne.faTriangleExclamation,size:"xs",color:l?"warning":"primary"}),children:t.jsx("div",{className:"tm-px-8 tm-py-4",children:t.jsx(f.Text,{children:o==null?void 0:o.motivo})})})}),t.jsx(f.Icon,{name:ne.faCalendar,size:"xs",color:"current"}),t.jsx(f.Text,{children:w})]})]})},lr=({id:e})=>{const{selectedTasks:a,selectTask:n}=rr();return t.jsxs(t.Fragment,{children:[t.jsx("label",{className:"tm-flex tm-h-[20px] tm-w-[20px] tm-cursor-pointer tm-items-center tm-justify-center tm-rounded-md tm-border-2 tm-border-default",htmlFor:e.toString(),children:t.jsx("span",{className:`${a.includes(e)?"tm-opacity-100":"tm-opacity-0"} tm-transition-opacity tm-duration-500`,children:t.jsx(f.Icon,{name:ne.faCheck,size:"xs",style:{color:Ce.primary.regular},color:"current"})})}),t.jsx("input",{className:"tm-hidden",id:e.toString(),type:"checkbox",onChange:()=>n(e)})]})},os=({task:e})=>t.jsx(Fe,{trigger:t.jsx(f.Text,{children:e}),children:t.jsx("div",{className:"tm-py-2 tm-px-4",children:t.jsx(f.Text,{children:e})})}),cr=({id:e})=>{var m,g,x;const[a,n]=u.useState(!1),{tasksProject:s}=at(),{reasignResponsible:o}=He(),{getOBPUrlApi:i}=pe(),r=(m=s==null?void 0:s.data)==null?void 0:m.find(p=>p.id===e),[l,d]=u.useState(null),{user:c}=je();return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"tm-border-b tm-border-default tm-pb-3",children:t.jsxs("div",{className:"tm-mb-3 tm-ml-[30px] tm-mt-1 tm-flex tm-flex-wrap tm-items-center tm-gap-xl tm-rounded-md tm-p-2 hover:tm-bg-surface-hover",onMouseEnter:()=>{d(e)},onMouseLeave:()=>d(null),onClick:()=>n(!0),children:[!(r!=null&&r.nameRequiredTask)||(r==null?void 0:r.nameRequiredTask)!==""&&(r==null?void 0:r.statusRequiredTask)===2&&t.jsx(lr,{id:e}),t.jsx(Wa,{id:e,idAtraso:(g=r==null?void 0:r.atraso)==null?void 0:g.atrasoId,nameRequiredTask:(r==null?void 0:r.nameRequiredTask)??"",status:r==null?void 0:r.status,statusRequiredTask:(r==null?void 0:r.statusRequiredTask)??0,nameRequiredTaskResponsible:r==null?void 0:r.nameRequiredTaskResponsible},e),(r==null?void 0:r.willBePaused)&&t.jsx(Ya,{idTask:r.id,paused:r.paused,popupId:`child-task-pause-menu-${r.id}`,children:p=>t.jsx(f.Button,{ref:p,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"})}),t.jsx(Ga,{role:c==null?void 0:c.role,status:r==null?void 0:r.status,onClick:async(p,h)=>{await o({idNewResponsible:p,id:e,typeOfSelect:h})},responsible:r==null?void 0:r.responsible,users:((x=r==null?void 0:r.users)==null?void 0:x.map(p=>qt(p,i())))??[]}),t.jsx(os,{task:(r==null?void 0:r.task)??""}),t.jsx(ns,{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:c==null?void 0:c.role,status:(r==null?void 0:r.status)??-1}),t.jsx(ss,{startDate:r==null?void 0:r.startDate,endDate:r==null?void 0:r.endDate})]})}),t.jsx(Qa,{taskId:e,isOpen:a,setIsOpen:n})]})},rs=({id:e})=>{var d,c,m,g,x,p;const{user:a}=je(),{tasksProject:n,openTasks:s,openTask:o}=at(),i=(d=n==null?void 0:n.data)==null?void 0:d.find(h=>h.id===e),l=(()=>{var w;const h=n==null?void 0:n.data,y=[];return(w=i==null?void 0:i.tasks)==null||w.forEach(j=>{const b=h.find(v=>v.id===(j==null?void 0:j.id));b&&y.push(b)}),y})();return i?t.jsxs("div",{className:"tm-mb-2 tm-flex tm-flex-col tm-gap-m tm-overflow-y-auto",children:[t.jsxs("div",{className:"tm-flex tm-cursor-pointer tm-flex-wrap tm-items-center tm-gap-16 tm-rounded-md tm-p-2 hover:tm-bg-surface-hover",onClick:()=>o(e),children:[t.jsx("button",{type:"button",className:`${s.includes(e)?"":"tm--rotate-90"} tm-transition-all tm-duration-300`,children:t.jsx(f.Icon,{name:ne.faChevronDown,size:"sm",style:{color:Ce.texts.subtext},color:"current"})}),t.jsx("div",{className:"tm-mx-1 tm-flex tm-h-[28px] tm-min-h-[28px] tm-w-fit tm-min-w-[28px] tm-items-center tm-justify-center tm-rounded-full tm-bg-surface-default",children:t.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})}),t.jsx(os,{task:(i==null?void 0:i.task)??""}),t.jsx(ns,{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:a==null?void 0:a.role,status:(i==null?void 0:i.status)??-1}),t.jsx(ss,{startDate:i==null?void 0:i.startDate,endDate:i==null?void 0:i.endDate}),t.jsxs("button",{type:"button",className:"tm-flex tm-h-[30px] tm-w-fit tm-items-center tm-justify-center tm-gap-s tm-rounded-md tm-bg-surface-default tm-px-m hover:tm-bg-surface-hover",children:[t.jsx(f.Icon,{name:ne.faDiagramSubtask,size:"sm",color:"current"}),t.jsx(f.Text,{children:((m=i==null?void 0:i.tasks)==null?void 0:m.length)===0?1:(g=i==null?void 0:i.tasks)==null?void 0:g.length})]})]}),s.includes(e)&&t.jsx("div",{className:"tm-ml-[30px]",children:((x=i==null?void 0:i.tasks)==null?void 0:x.length)>0?(p=i==null?void 0:i.tasks)==null?void 0:p.map(h=>t.jsx(rs,{id:h==null?void 0:h.id})):t.jsx(cr,{id:i==null?void 0:i.id})})]}):null},dr=()=>{var s;const{tasksProject:e,projectID:a}=at();if(e!=null&&e.isFetching||e!=null&&e.isLoading)return t.jsx(ir,{});let n=[...(s=e==null?void 0:e.data)==null?void 0:s.filter(o=>o.isPrincipalTask)];return t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-m",children:t.jsx(or,{project:a,children:n==null?void 0:n.sort((o,i)=>o.orden-i.orden).map(o=>t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-m tm-border-b tm-border-default tm-pb-m ",children:t.jsx(rs,{id:o.id})}))})})};function mr({title:e,color:a,icon:n}){return t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[t.jsx(f.Icon,{name:n,size:"md",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotoneSecondary:.5}),t.jsx("p",{className:"tm-text-base tm-py-0.5 tm-font-body-sm-bold tm-text-body-sm-bold tm-leading-none tm-text-primary",children:e})]})}function ur({value:e,onChange:a}){return t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-4",children:[t.jsx("label",{className:"tm-text-body-sm-bold tm-text-primary",children:"Nombre del equipo"}),t.jsx(f.Input,{size:"xs",placeholder:"Creative",value:e,onChange:n=>a(n.target.value)})]})}const is=({title:e})=>t.jsxs("div",{className:"flex-1 tm-flex tm-items-center tm-gap-x-8",children:[t.jsx(f.Icon,{background:!0,name:ne.faFilePen,color:"blue",size:"lg"}),t.jsx(f.Text,{size:"xl",weight:"bold",children:e})]}),Xe={search:"",debouncedSearch:"",filters:[]},pr={"kanban-general":{...Xe},"lista-campanias":{...Xe},"kanban-campania":{...Xe},"teams-container":{...Xe},"templates-container":{...Xe}},gt=We.create((e,a)=>({viewFilters:pr,currentPath:null,debounceTimeouts:{},setCurrentPath:n=>{const s=a().currentPath;e({currentPath:n}),s&&s!==n&&a().resetPathData(s)},setSearch:(n,s)=>{const o=s||a().currentPath;if(!o)return;const i=`search_${o}`,r=a().debounceTimeouts[i];r&&clearTimeout(r),e(d=>({viewFilters:{...d.viewFilters,[o]:{...d.viewFilters[o],search:n}}}));const l=setTimeout(()=>{e(d=>({viewFilters:{...d.viewFilters,[o]:{...d.viewFilters[o],debouncedSearch:n}},debounceTimeouts:{...d.debounceTimeouts,[i]:void 0}}))},500);e(d=>({debounceTimeouts:{...d.debounceTimeouts,[i]:l}}))},setFilters:(n,s)=>{const o=s||a().currentPath;o&&e(i=>({viewFilters:{...i.viewFilters,[o]:{...i.viewFilters[o],filters:n}}}))},getSearch:n=>{var o;const s=n||a().currentPath;return s&&((o=a().viewFilters[s])==null?void 0:o.search)||""},getDebouncedSearch:n=>{var o;const s=n||a().currentPath;return s&&((o=a().viewFilters[s])==null?void 0:o.debouncedSearch)||""},getFilters:n=>{var o;const s=n||a().currentPath;return s?((o=a().viewFilters[s])==null?void 0:o.filters)||[]:[]},resetPathData:n=>{const s=`search_${n}`,o=a().debounceTimeouts[s];o&&clearTimeout(o),e(i=>({viewFilters:{...i.viewFilters,[n]:{...Xe}},debounceTimeouts:{...i.debounceTimeouts,[s]:void 0}}))}}));function ls({path:e}){const{getSearch:a,setSearch:n}=gt(),s=a(e);return t.jsx(f.Input,{leftSlot:ne.faSearch,placeholder:"Buscar...",size:"xs",value:s,onChange:o=>n(o.target.value,e)})}const ba={fase_plantilla:"",tipo_plantilla:"",modo_configuracion:"",categoria:"",formato_salida:"",tipo_medio:"",medio_especifico:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},fr={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},gr={fase_plantilla:"",tipo_plantilla:"",categoria:"",tipo_medio:"",medio_especifico:"",modo_configuracion:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},ya={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},ke=We.create(e=>({path:"",viewMode:"grid",isOpenModalLimit:!1,template:null,clave:"XX-XXX-XX-XXX-XX-X-X",templateFormData:ba,disabledFields:ya,claveParams:gr,paramsTipo:fr,isEditTemplate:!1,openModalCreateTemplate:!1,currentTemplateForEdit:null,refetch:null,openModalUnsavedChanges:!1,isDuplicateTemplate:!1,hasFormChanges:!1,openModalPublishTemplate:!1,currentTemplateId:null,openModalDeleteTemplate:!1,setPath:a=>e({path:a}),setViewMode:a=>e({viewMode:a}),setIsOpenModalLimit:a=>e({isOpenModalLimit:a}),setTemplate:a=>e({template:a}),setClave:a=>e({clave:a}),setTemplateFormData:a=>{e(n=>({templateFormData:{...n.templateFormData,...a}}))},resetTemplateFormData:()=>e({templateFormData:ba}),setDisableField:({fields:a,value:n})=>{for(const s of a)e(o=>({disabledFields:{...o.disabledFields,[s]:n}}))},resetDisabledFields:()=>e({disabledFields:ya}),setClaveParams:({field:a,value:n})=>{e(s=>({claveParams:{...s.claveParams,[a]:n}}))},resetClave:()=>e(a=>({clave:"XX-XXX-XX-XXX-XX-X-X"})),setParamTipo:a=>e(n=>({paramsTipo:{...n.paramsTipo,...a}})),setIsEditTemplate:a=>e({isEditTemplate:a}),setOpenModalCreateTemplate:a=>e({openModalCreateTemplate:a}),setCurrentTemplateForEdit:a=>e({currentTemplateForEdit:a}),setRefetch:a=>e({refetch:a}),setOpenModalUnsavedChanges:a=>e({openModalUnsavedChanges:a}),setIsDuplicateTemplate:a=>e({isDuplicateTemplate:a}),setHasFormChanges:a=>e({hasFormChanges:a}),setOpenModalPublishTemplate:a=>e({openModalPublishTemplate:a}),setCurrentTemplateId:a=>e({currentTemplateId:a}),setOpenModalDeleteTemplate:a=>e({openModalDeleteTemplate:a})})),cs=e=>{const{getSearch:a,getDebouncedSearch:n,setSearch:s,getFilters:o,setFilters:i,resetPathData:r}=gt();return{search:a(e),debouncedSearch:n(e),filters:o(e),setSearch:l=>s(l,e),setFilters:l=>i(l,e),resetData:()=>r(e)}},hr=()=>t.jsx(is,{title:"Flujos de trabajo"}),qe=We.create(e=>({activeTemplate:null,setActiveTemplate:a=>e({activeTemplate:a}),clearActiveTemplate:()=>e({activeTemplate:null})})),ve=We.create((e,a)=>({mode:"grid",id:null,setMode:(n,s)=>{const o=a();if(n==="grid"||o.id!==null&&o.id!==s){const{clearAllGroupData:r}=a();r()}e({mode:n,id:s??null})},setId:n=>e({id:n}),reset:()=>{const{clearAllGroupData:n}=a();n(),e({mode:"grid",id:null})},addNode:null,addBranch:null,addNodeFromHandle:null,addNodeWithType:null,savePositions:null,loadPositions:null,clearPositions:null,activePlusNode:null,templateViewModes:{},setViewMode:(n,s)=>{const{templateViewModes:o}=a();e({templateViewModes:{...o,[n]:s}})},getViewMode:n=>{const{templateViewModes:s}=a();return s[n]??"readonly"},clearViewMode:n=>{const{templateViewModes:s}=a(),o={...s};delete o[n],e({templateViewModes:o})},flowViewportByTemplateId:{},setFlowViewportForTemplate:(n,s)=>{const{flowViewportByTemplateId:o}=a();e({flowViewportByTemplateId:{...o,[n]:{x:s.x,y:s.y,zoom:s.zoom}}})},expandedGroups:new Set,groupTemplateData:{},toggleGroupExpansion:n=>{const{expandedGroups:s}=a(),o=new Set(s);o.has(n)?o.delete(n):o.add(n),e({expandedGroups:o})},setGroupTemplateData:(n,s)=>{const{groupTemplateData:o}=a();e({groupTemplateData:{...o,[n]:s}})},clearGroupTemplateData:n=>{const{groupTemplateData:s}=a(),o={...s};delete o[n],e({groupTemplateData:o})},clearAllGroupData:()=>{e({expandedGroups:new Set,groupTemplateData:{}})},copiedNodes:[],setCopiedNodes:n=>e({copiedNodes:n}),clearCopiedNodes:()=>e({copiedNodes:[]}),expandGroup:null,collapseGroup:null})),ds=()=>{const{tasks_api:e}=pe();return{getTemplateWithTasks:async n=>{var s;try{const o=Ee.stringify({filters:{plantilla:{id:n}}},{encodeValuesOnly:!0}),i=await e.get(`/api/plantillas/plantilla-tareas-grafico?${o}`);if(i.data&&i.data.data)return i.data.data;throw new Error(`No se encontraron datos para la plantilla con ID ${n}`)}catch(o){throw console.error("Error en getTemplateWithTasks:",{error:o.message,status:(s=o.response)==null?void 0:s.status}),o}}}},_e={DIRTY:"dirty",IDLE:"idle",NEW:"new"},Ae={DRAFT:"draft",PUBLISHED:"published",DELETED:"deleted"},Ye="templates",Je="templates_states";function xr(e,a){return We.create((n,s)=>{let o=null;const i=g=>n({isLoading:g}),r=g=>n({error:g}),l=g=>n({data:g}),d=()=>new Promise((g,x)=>{const p=indexedDB.open(e.name,e.version);p.onerror=()=>{r("Error al abrir la base de datos"),x(new Error("Error al abrir la base de datos"))},p.onsuccess=()=>{o=p.result,n({isConnected:!0,error:null}),g(o)},p.onupgradeneeded=h=>{const y=h.target.result;e.stores.forEach(w=>{var j;if(!y.objectStoreNames.contains(w.name)){const b=y.createObjectStore(w.name,{keyPath:w.keyPath,autoIncrement:w.autoIncrement??!1});(j=w.indexes)==null||j.forEach(v=>{b.createIndex(v.name,v.keyPath,v.options)})}})}}),c=(g="readonly")=>{if(!o)throw new Error("Base de datos no conectada");return o.transaction(a,g)},m=(g="readonly")=>c(g).objectStore(a);return{data:[],isLoading:!1,error:null,isConnected:!1,connect:async()=>{try{i(!0),r(null),await d(),await s().getAll()}catch(g){r(g instanceof Error?g.message:"Error desconocido")}finally{i(!1)}},disconnect:()=>{o&&(o.close(),o=null,n({isConnected:!1,data:[]}))},add:async g=>{try{i(!0),r(null);const x=m("readwrite");return new Promise((p,h)=>{const y=x.add(g);y.onsuccess=async()=>{await s().getAll(),p()},y.onerror=()=>{r("Error al agregar elemento"),h(new Error("Error al agregar elemento"))}})}finally{i(!1)}},addMany:async g=>{try{i(!0),r(null);const x=m("readwrite");return new Promise((p,h)=>{let y=0,w=!1;g.forEach(j=>{const b=x.add(j);b.onsuccess=()=>{y++,y===g.length&&!w&&s().getAll().then(()=>p())},b.onerror=()=>{w||(w=!0,r("Error al agregar elementos"),h(new Error("Error al agregar elementos")))}})})}finally{i(!1)}},get:async g=>{try{r(null);const x=m();return new Promise((p,h)=>{const y=x.get(g);y.onsuccess=()=>{p(y.result)},y.onerror=()=>{r("Error al obtener elemento"),h(new Error("Error al obtener elemento"))}})}catch(x){r(x instanceof Error?x.message:"Error desconocido");return}},getAll:async()=>{try{r(null);const g=m();return new Promise((x,p)=>{const h=g.getAll();h.onsuccess=()=>{const y=h.result;l(y),x(y)},h.onerror=()=>{r("Error al obtener elementos"),p(new Error("Error al obtener elementos"))}})}catch(g){return r(g instanceof Error?g.message:"Error desconocido"),[]}},update:async(g,x)=>{try{i(!0),r(null);const p=m("readwrite");return new Promise((h,y)=>{const w=p.get(g);w.onsuccess=()=>{const j=w.result;if(!j){r("Elemento no encontrado"),y(new Error("Elemento no encontrado"));return}const b={...j,...x},v=p.put(b);v.onsuccess=async()=>{await s().getAll(),h()},v.onerror=()=>{r("Error al actualizar elemento"),y(new Error("Error al actualizar elemento"))}},w.onerror=()=>{r("Error al obtener elemento para actualizar"),y(new Error("Error al obtener elemento para actualizar"))}})}finally{i(!1)}},delete:async g=>{try{i(!0),r(null);const x=m("readwrite");return new Promise((p,h)=>{const y=x.delete(g);y.onsuccess=async()=>{await s().getAll(),p()},y.onerror=()=>{r("Error al eliminar elemento"),h(new Error("Error al eliminar elemento"))}})}finally{i(!1)}},clear:async()=>{try{i(!0),r(null);const g=m("readwrite");return new Promise((x,p)=>{const h=g.clear();h.onsuccess=()=>{l([]),x()},h.onerror=()=>{r("Error al limpiar store"),p(new Error("Error al limpiar store"))}})}finally{i(!1)}},query:async(g,x)=>{try{r(null);const h=m().index(g);return new Promise((y,w)=>{const j=h.getAll(x);j.onsuccess=()=>{y(j.result)},j.onerror=()=>{r("Error en consulta"),w(new Error("Error en consulta"))}})}catch(p){return r(p instanceof Error?p.message:"Error desconocido"),[]}},queryRange:async(g,x,p)=>{try{r(null);const y=m().index(g);return new Promise((w,j)=>{const b=IDBKeyRange.bound(x,p),v=y.getAll(b);v.onsuccess=()=>{w(v.result)},v.onerror=()=>{r("Error en consulta por rango"),j(new Error("Error en consulta por rango"))}})}catch(h){return r(h instanceof Error?h.message:"Error desconocido"),[]}}}})}const _t=new Map;function ja(e,a,n=!0){const s=u.useMemo(()=>{const v=`${e.name}-${a}`;if(!_t.has(v)){const O=xr(e,a);_t.set(v,O)}return _t.get(v)},[e.name,a]);u.useEffect(()=>{n&&!s.getState().isConnected&&s.getState().connect()},[n,s]);const o=s(v=>v.data),i=s(v=>v.isLoading),r=s(v=>v.error),l=s(v=>v.isConnected),d=u.useCallback(()=>s.getState().connect(),[s]),c=u.useCallback(()=>s.getState().disconnect(),[s]),m=u.useCallback(v=>s.getState().add(v),[s]),g=u.useCallback(v=>s.getState().addMany(v),[s]),x=u.useCallback(v=>s.getState().get(v),[s]),p=u.useCallback(()=>s.getState().getAll(),[s]),h=u.useCallback((v,O)=>s.getState().update(v,O),[s]),y=u.useCallback(v=>s.getState().delete(v),[s]),w=u.useCallback(()=>s.getState().clear(),[s]),j=u.useCallback((v,O)=>s.getState().query(v,O),[s]),b=u.useCallback((v,O,H)=>s.getState().queryRange(v,O,H),[s]);return{data:o,isLoading:i,error:r,isConnected:l,connect:d,disconnect:c,add:m,addMany:g,get:x,getAll:p,update:h,delete:y,clear:w,query:j,queryRange:b}}const ms=u.createContext(void 0);function br({children:e}){const[a,n]=u.useState(!1),[s,o]=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=ja(l,Ye,!0),c=ja(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 g=d.isConnected,x=d.error;u.useEffect(()=>{m.current.set(Ye,d),m.current.set(Je,c)},[d,c]);const p=u.useCallback(y=>{const w=m.current.get(y);if(!w)throw new Error(`Store ${y} no encontrado. Asegúrate de que esté configurada en indexedDBConfig.`);return{data:w.data,isLoading:w.isLoading,add:w.add,addMany:w.addMany,get:w.get,getAll:w.getAll,update:w.update,delete:w.delete,clear:w.clear,query:w.query,queryRange:w.queryRange,error:w.error}},[]);u.useEffect(()=>{(async()=>{try{if(o(!0),r(null),await d.connect(),g)n(!0);else throw new Error("No se pudo establecer la conexión con IndexedDB")}catch(w){r(w instanceof Error?w.message:"Error desconocido")}finally{o(!1)}})()},[d.connect,g]),u.useEffect(()=>{x&&r(x)},[x]);const h={isInitialized:a,isInitializing:s,error:i,isConnected:g,getStore:p};return t.jsx(ms.Provider,{value:h,children:e})}function us(){const e=u.useContext(ms);if(e===void 0)throw new Error("useIndexedDBContext debe usarse dentro de IndexedDBProvider");return e}function Gt(){const{getStore:e}=us();return e(Ye)}function ps(){const{add:e}=Gt(),a=async r=>{try{await e(r)}catch(l){console.error("Error al guardar plantilla a indexDB:",l)}},n=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(g=>{d(g)})})};return r.tarea_plantillas.forEach(c=>{d(c)}),l},s=(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(...s(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(...s(m.id,l)):typeof m=="number"&&l[m]&&c.push(...s(m,l))}),c},o=(r,l)=>{const d=l[r];if(!d)return[];const c=[d];return d.tarea_padre&&l[d.tarea_padre]&&c.unshift(...o(d.tarea_padre,l)),c};return{hydrateTasks:async r=>{var c,m;const l=await n(r);return(m=(c=r==null?void 0:r.graph_layout)==null?void 0:c.snapshot)==null?void 0:m.nodes.map(g=>{if(g.type==="group")return{...g,data:{...g.data,type:"template"},type:"group",selected:!1};const x=g.data.tareaId?l[g.data.tareaId]:r;return x!=null&&x.start?{...g,data:{...x.plantilla,id:x.id},selected:!1}:{...g,data:{...x,type:"task"},selected:!1}})},initializeTemplateStore:a,indexedTasks:n,getTaskHierarchy:s,getTaskPath:o}}function fs(){const{getStore:e}=us();return e(Je)}const it=()=>{const{add:e,get:a,delete:n,update:s}=fs(),{get:o}=Gt(),i={created:[],updated:[],deleted:[]},r=async({templateId:p})=>{const h=await a(p);return h||null};return{addTaskToState:async({task:p})=>{const h=await r({templateId:p.plantilla.id}),y=await o(p.plantilla.id);if(console.log("🔄 template:",y),!h)e({...i,id:p.plantilla.id,created:[...i.created,p]});else{const w=h.created.findIndex(j=>j.id===p.id);if(w!==-1){const j=h.created[w];h.created[w]={...j,...p},await s(p.plantilla.id,h)}else h.created.push(p),await s(p.plantilla.id,h)}},getTaskFromState:r,removeTemplateStates:async p=>{await n(p)},updateTaskInState:async({task:p})=>{const h=await r({templateId:p.plantilla.id}),w=(await o(p.plantilla.id)).graph_layout.snapshot.nodes;if(console.log("🔄 nodes:",w),h){const j=h.updated.findIndex(b=>b.id===p.id);if(j!==-1){const b=h.updated[j];console.log("🔄 currentTask:",b),h.updated[j]={...b,...p}}else h.updated.push(p);await s(p.plantilla.id,h)}else e({...i,id:p.plantilla.id,updated:[...i.updated,p]})},removeTaskFromState:async({templateId:p,id:h})=>{const y=await r({templateId:p});if(y){if(h>0){const j=y.deleted.findIndex(b=>b===h);if(j!==-1){y.deleted.splice(j,1),await s(p,y);return}}const w=y.created.findIndex(j=>j.id===h);if(w!==-1){y.created.splice(w,1),await s(p,y);return}}else if(h>0){e({...i,id:p,deleted:[...i.deleted,h]});return}},removeParentIdFromNodes:async({templateId:p,id:h})=>{const y=await r({templateId:p});if(y){const w=y.created.findIndex(b=>b.id===h);if(w!==-1){y.created[w].tarea_padre=null,y.created[w].id_t_requerida=null,await s(p,y);return}const j=y.updated.findIndex(b=>b.id===h);if(j!==-1){y.updated[j].tarea_padre=null,y.updated[j].id_t_requerida=null,await s(p,y);return}}},updateNodeWithNewEdge:async({templateId:p,edge:h,task:y})=>{console.log("🔵 updateNodeWithNewEdge - Inicio",{templateId:p,taskId:y.id,taskData:y});const w=await r({templateId:p});if(console.log("🔵 updateNodeWithNewEdge - Estado actual:",w),w){console.log("🔵 updateNodeWithNewEdge - Estado existe, buscando tarea...");const j=w.created.findIndex(v=>v.id===y.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en created:",j),j!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en created"),w.created[j]=y,await s(p,w),console.log("✅ updateNodeWithNewEdge - Actualizado en created");return}const b=w.updated.findIndex(v=>v.id===y.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en updated:",b),b!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en updated"),w.updated[b]=y,await s(p,w),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)"),w.created.push(y)):(console.log("🔵 updateNodeWithNewEdge - Agregando a updated (tarea existente)"),w.updated.push(y)),await s(p,w),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 j=y.id<0,b={...i,id:p,created:j?[y]:[],updated:j?[]:[y]};console.log("🔵 updateNodeWithNewEdge - Nuevo estado:",b,j?"(created)":"(updated)"),e(b),console.log("✅ updateNodeWithNewEdge - Estado creado exitosamente")}else console.error("❌ updateNodeWithNewEdge - task.id no válido:",y.id);console.log("🔵 updateNodeWithNewEdge - Fin")}}};function ze(){const{activeTemplate:e,setActiveTemplate:a}=qe(),{mode:n,setMode:s,setViewMode:o,clearViewMode:i}=ve(),{template:r,setIsOpenModalLimit:l,setOpenModalUnsavedChanges:d,setOpenModalPublishTemplate:c,setOpenModalDeleteTemplate:m}=ke(),{hydrateTasks:g}=ps(),{addTaskToState:x,removeTemplateStates:p}=it(),h=le.useQueryClient(),{data:y,add:w,update:j,get:b,getAll:v,delete:O,isLoading:H,error:M}=Gt(),{get:N}=fs(),{getTemplateWithTasks:A}=ds(),{tasks_api:T}=pe(),[X,U]=u.useState(!1),[L,I]=u.useState(!1),[V,D]=u.useState(!1),q=u.useMemo(()=>y.sort((C,R)=>C.order-R.order),[y]);u.useEffect(()=>{q.length===0&&n!=="grid"&&s("grid")},[q,n,s]);const B=async(E,C=_e.IDLE)=>{var R;try{const F=await A(E.id),_=await g(F),Q={id:crypto.randomUUID(),data:F,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},Z=_||[Q],ae={...F,graph_layout:{...F==null?void 0:F.graph_layout,snapshot:{...(R=F==null?void 0:F.graph_layout)==null?void 0:R.snapshot,nodes:Z}},estatus:C,estatusFromStrapi:F.estatus};await w(ae)}catch(F){console.warn("No se pudieron obtener los datos completos de la plantilla, creando versión básica:",F);const _=E,Q={id:crypto.randomUUID(),data:_,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},Z={id:_.id,snapshot:{nodes:[Q],edges:[],viewport:{x:0,y:0,zoom:1}},history:null,zoom:1,position:{x:0,y:0}},ae={..._,graph_layout:_.graph_layout||Z,estatus:C,tarea_plantillas:_.tarea_plantillas||[]};await w(ae)}},$=async({template:E,checkTemplateInIndexedDB:C=!1,statusTemplate:R=_e.IDLE})=>{const F=q;if(!F.find(Q=>Q.id===E.id)){if(F.length===5){l(!0);return}if(C&&await b(E.id))return;await B({...E,order:F.length+1},R)}await z(E.id),await Y(E),s("create-edit",E==null?void 0:E.id)},Y=async E=>{const C=await b(E.id);a(C)},z=async E=>{try{let C=await v();C.sort((F,_)=>(F.order||0)-(_.order||0));const R=C.findIndex(F=>F.id===E);if(R!==-1){const[F]=C.splice(R,1);C.unshift(F),C.forEach((Q,Z)=>{Q.order=Z+1});const _=C.map(Q=>j(Q.id,Q));await Promise.all(_)}else return}catch{}},re=async E=>{try{await O(E),i(E);const C=await v();C.forEach((F,_)=>{F.order=_+1});const R=C.map(F=>j(F.id,F));await Promise.all(R)}catch{}};return{screens:q,isLoading:H,error:M,add:w,data:y,addScreen:B,openTemplate:$,update:j,delete:re,get:b,activeTemplate:e,activateTemplate:Y,reorderingTemplates:z,replaceTemplate:async()=>{try{const E=[...q],C={...E[E.length-1]};await O(C.id);const R={...r,order:C.order};await B(R);const _=(await v()).sort((Z,ae)=>Z.order-ae.order);if(_.some((Z,ae)=>(Z.order||0)!==ae+1)){const Z=_.map((ae,ie)=>({...ae,order:ie+1}));for(const ae of Z)try{await j(ae.id,ae)}catch{}}}catch{}finally{l(!1)}},addTaskUpdatingTemplate:async(E,C,R="hija")=>{var Z,ae,ie,J;const F=await b(C);if(!F)return null;const _={id:E.id,uuid:crypto.randomUUID(),reference_graph:E.reference_graph,texto_corto:E.title,texto_largo:E.description||"",prioridad:E.priority||null,nivel_dificultad:E.difficulty||1,duracion:E.duration||null,start:!1,type:"task",equipo:{id:Number(E.team)||null},responsable:{id:Number(E.responsible)||null},plantilla:{id:F.id,clave:F.clave,categoria:F.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:R==="dependiente"?(ae=(Z=E.parent)==null?void 0:Z.data)==null?void 0:ae.id:null,ids_t_dependientes:[],tarea_padre:R==="hija"?(J=(ie=E.parent)==null?void 0:ie.data)==null?void 0:J.id:null,tareas:[]},Q={...F,estatus:_e.DIRTY};return await j(C,Q),e&&e.id===C&&a(Q),await x({task:_}),_},addTemplateUpdatingTemplate:async(E,C,R,F="hija")=>{let _=null;if(e&&e.id===C?_=e:_=await b(C),!_)return null;const Q=(ae,ie,J,se)=>{for(let te=0;te<ae.length;te++){const fe=ae[te];if(fe.id===ie||fe.uuid===ie)return se==="dependiente"?(fe.plantilla_dependents||(fe.plantilla_dependents=[]),fe.plantilla_dependents.push(J)):se==="hija"&&(fe.plantilla_dependents||(fe.plantilla_dependents=[]),fe.plantilla_dependents.push(J)),!0;if(fe.tareas&&fe.tareas.length>0){const ce=Q(fe.tareas,ie,J,se);if(ce)return ce}}return!1};if(Q(_.tarea_plantillas,R,E,F)){const ae={..._,estatus:_e.DIRTY,updatedAt:new Date().toISOString()};return await j(C,ae),e&&e.id===C&&a(ae),!0}else return!1},updateGraphLayout:async(E,C)=>{var R;if(!E){console.warn("⚠️ updateGraphLayout - Template ID no válido");return}try{const F=await b(E);if(!F){console.warn("⚠️ updateGraphLayout - Template no encontrado");return}const _=(C.nodes||[]).filter(se=>{var te;return!((te=se.data)!=null&&te.isInternal)&&!se.parentId}).map(se=>{const{style:te,measured:fe,data:ce,...xe}=se,{expandedDimensions:we,isExpanded:ye,needsReExpansion:Oe,...Ne}=ce||{},$e=te?{...te,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...xe,style:$e,data:Ne,position:se.position}}),Q=(C.edges||[]).filter(se=>{var te;return!((te=se.data)!=null&&te.isInternal)}).map(se=>{var te;if((te=se.data)!=null&&te.redirectedToInternal){const{redirectedToInternal:fe,originalTarget:ce,...xe}=se.data;return{...se,target:ce||se.target,data:xe}}return se}),Z={...C,nodes:_,edges:Q},ae=(R=F.graph_layout)==null?void 0:R.snapshot;if(!(!ae||JSON.stringify(ae)!==JSON.stringify(Z)))return;const J={...F,graph_layout:{...F.graph_layout,snapshot:Z},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await j(E,J),e&&e.id===E&&a(J)}catch(F){console.error("❌ updateGraphLayout - Error:",F)}},saveTemplateChanges:async(E=!0)=>{try{if(e.estatus===_e.DIRTY){I(!0);const{id:C}=e,R=await b(C),F=await N(C),_=R.graph_layout.snapshot.nodes||[],Q=_.filter(J=>{var se;return!((se=J.data)!=null&&se.isInternal)&&!J.parentId}),Z=_.length-Q.length;Z>0&&console.warn(`💾 [saveTemplateChanges] Se filtraron ${Z} nodos internos al guardar plantilla ${C}`);const ae={graph_layout:{...R.graph_layout,snapshot:{...R.graph_layout.snapshot,nodes:Q.map(J=>{const{style:se,measured:te,selected:fe,...ce}=J,xe=se?{...se,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return J.type==="group"?{...ce,style:xe,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}}:{...ce,style:xe,data:{tareaId:J.data.id&&J.data.id>0?J.data.id:null}}}),edges:(R.graph_layout.snapshot.edges||[]).filter(J=>{var se;return!((se=J.data)!=null&&se.isInternal)})}},tasks:{created:(F==null?void 0:F.created)||[],updated:(F==null?void 0:F.updated)||[],deleted:(F==null?void 0:F.deleted)||[]}},ie=await T.post("/api/tareas/save-tareas-grafico",{data:ae});if(ie.data&&ie.status===200){try{const J=await A(C),se=await g(J),te={...J,graph_layout:{...J.graph_layout,snapshot:{...J.graph_layout.snapshot,nodes:se}},estatus:_e.IDLE};await j(C,te),E||a(te)}catch{const se=await b(C);if(se&&!E){const te={...se,estatus:_e.IDLE};await j(C,te),a(te)}}await h.invalidateQueries({queryKey:["template",C]}),await h.invalidateQueries({queryKey:["template"]}),p(C),E&&(re(C),d(!1)),o(C,"readonly")}}}catch(C){console.log(C)}finally{I(!1)}},publishTemplate:async E=>{try{U(!0);const C={estatus:Ae.PUBLISHED,publication_date:new Date},R=await T.put(`/api/plantillas/plantilla-update-estatus/${E}`,{data:C});R.data&&R.status===200&&(a({...e,estatusFromStrapi:Ae.PUBLISHED}),c(!1),f.toast.info("Se publicó correctamente el proceso"))}catch(C){console.log(C),f.toast.error("Surgió un error al publicar el proceso")}finally{U(!1)}},deleteTemplate:async E=>{try{D(!0);const C={estatus:Ae.DELETED,sjdaksd:0},R=await T.put(`/api/plantillas/plantilla-update-estatus/${E}`,{data:C});R.data&&R.status===200&&(m(!1),f.toast.info("Se eliminó correctamente el proceso"))}catch(C){console.error(C),f.toast.error("Surgión un error al eliminar el proceso")}finally{D(!1)}},loadingPublishTemplate:X,loadingSaveChanges:L,loadingDeleteTemplate:V}}const yr=async({tasks_api:e})=>{try{return(await e.get("/api/getAllOBPusers")).data}catch(a){throw console.log("Error al obtener los usuarios de OBP",a),`Error al obtener los usuarios de OBP: ${a}`}},jr=()=>{const{tasks_api:e}=pe();return{users:le.useQuery({queryKey:["usersOBP"],queryFn:()=>yr({tasks_api:e}),staleTime:1e3*60*60*24})}},st=()=>{const{users:e}=jr(),a=le.useQuery({queryKey:["users_index",e.data],queryFn:()=>mo({users:e.data||[]}),staleTime:1e3*60*60*24,enabled:!!e.data});return{users:a.data,isLoading:a.isLoading||e.isLoading}},Wt=()=>{const{users:e,isLoading:a}=st(),{getImageOBP:n}=pe();return{getImageByEmail:i=>{const r=e==null?void 0:e[i];return n(r==null?void 0:r.image)},getNameByEmail:i=>{const r=e==null?void 0:e[i];return(r==null?void 0:r.nombre)||""},isLoading:a}},lt=({isLoading:e})=>e?t.jsxs("div",{className:"tm-fixed tm-inset-0 tm-z-50 tm-flex tm-items-center tm-justify-center",children:[t.jsx("div",{className:"tm-absolute tm-inset-0",style:{backgroundColor:"rgba(0, 0, 0, 0.5)"}}),t.jsx("div",{className:"tm-relative tm-flex tm-flex-col tm-items-center tm-justify-center tm-gap-4",children:t.jsx(f.Spinner,{})})]}):null,wa=({template:e,openModalPublishTemplate:a,onHadleClickEditTemplateParams:n,onEditTasks:s,canDuplicateAndDeleteTemplates:o,onHandleClickDuplicateTemplate:i,openModalDeleteTemplate:r})=>t.jsx(f.Popup,{color:"secondary",pill:"pill",icon:de.faEllipsis,stopPropagationList:!0,children:t.jsxs(f.List,{className:"tm-p-6 tm-gap-4",children:[e.estatus!==Ae.PUBLISHED&&e.counts_tasks>2&&t.jsx(f.ListItem,{icon:de.faArrowUp,onClick:a,children:"Publicar"}),t.jsx(f.ListItem,{icon:de.faEdit,onClick:()=>{n(e)},children:"Editar parámetros"}),t.jsx(f.ListItem,{icon:de.faEdit,onClick:()=>{s&&s(e)},children:"Editar tareas"}),o&&t.jsx(f.ListItem,{icon:de.faClone,onClick:l=>{l.stopPropagation(),i(e)},children:"Duplicar"}),o&&t.jsx(f.ListItem,{color:"red",icon:de.faTrash,onClick:r,children:"Eliminar"})]})}),gs=({fullWidth:e,mode:a="grid",onClick:n,active:s,template:o,withOptions:i=!0})=>{const{openTemplate:r}=ze(),{getImageByEmail:l,getNameByEmail:d}=Wt(),{setIsEditTemplate:c,setOpenModalCreateTemplate:m,setCurrentTemplateForEdit:g,setIsDuplicateTemplate:x,setOpenModalPublishTemplate:p,setCurrentTemplateId:h,setOpenModalDeleteTemplate:y}=ke(),w={0:{color:"accent",theme:"solid"},1:{color:"accent",theme:"soft"},2:{color:"warning",theme:"solid"},3:{color:"info",theme:"solid"},4:{color:"gray",theme:"solid"},5:{color:"warning",theme:"soft"},6:{color:"danger",theme:"solid"},7:{color:"info",theme:"soft"},8:{color:"success",theme:"solid"},9:{color:"danger",theme:"solid"}},[j,b]=u.useState(!1),v=async()=>{if(b(!0),a==="grid")try{b(!0),await r({template:o,checkTemplateInIndexedDB:!0})}catch($){console.error($)}finally{b(!1)}else b(!1);n==null||n(o==null?void 0:o.id)},O=async()=>{if(!(a!=="grid"||!o)){b(!0);try{await r({template:o,checkTemplateInIndexedDB:!0}),n==null||n(o==null?void 0:o.id)}catch($){console.error($)}finally{b(!1)}}},H=$=>{c(!0),m(!0),g($)},M=$=>{x(!0),m(!0),g($)},N=()=>{h(o==null?void 0:o.id),p(!0)},A=()=>{h(o==null?void 0:o.id),y(!0)},T=(o==null?void 0:o.dias_duracion)===1?"Día":"Días",X=(o==null?void 0:o.counts_tasks)===1?"Tarea":"Tareas",U=(o==null?void 0:o.estatus)===Ae.PUBLISHED?Et(o==null?void 0:o.publication_date).format("DD/MM/YYYY"):Et(o==null?void 0:o.createdAt).format("DD/MM/YYYY"),L=(o==null?void 0:o.updated_by)||(o==null?void 0:o.created_by),I=l(L==null?void 0:L.email),V=d(L==null?void 0:L.email)||"",D=(o==null?void 0:o.estatus)===Ae.PUBLISHED?"Fecha de publicación":"Fecha de creación",q=(o==null?void 0:o.estatus)===Ae.DRAFT,B=$=>{const Y=$.split("-");return t.jsx(t.Fragment,{children:Y.map((z,re)=>t.jsxs("span",{children:[z,re<Y.length-1&&t.jsx("span",{className:"tm-text-neutral-200",children:"-"})]},re))})};return t.jsxs(f.Card,{active:s,fullWidth:e,onClick:v,className:`${e?"md:tm-flex-row":"tm-flex-col"}`,children:[t.jsx(lt,{isLoading:j}),t.jsx(f.Card.Header,{children:t.jsx("div",{className:"tm-flex tm-justify-between tm-items-start tm-gap-x-4",children:t.jsxs("div",{className:"tm-flex tm-justify-between tm-items-start tm-gap-4 tm-flex-1",children:[t.jsxs("div",{className:"tm-flex tm-place-items-start tm-gap-x-8",children:[t.jsx("div",{className:"tm-flex tm-items-center",children:t.jsx(f.Icon,{name:Ve.faChartDiagram,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"lg"})}),t.jsxs("div",{className:"tm-flex tm-gap-x-8 tm-flex-col tm-gap-y-4",children:[t.jsx(f.Text,{size:"sm",weight:"semibold",color:"primary",truncateLabel:!0,children:B((o==null?void 0:o.clave)||(o==null?void 0:o.nombre_plantilla))}),t.jsxs("div",{className:"tm-flex tm-items-baseline tm-gap-x-1",children:[t.jsx(f.Badge,{size:"sm",theme:"soft",color:(o==null?void 0:o.estatus)===Ae.PUBLISHED?"success":"gray",label:(o==null?void 0:o.estatus)===Ae.PUBLISHED?"Publicado":"Borrador"}),!(typeof U=="string"&&U==="Invalid date")&&t.jsx(f.Tooltip,{label:D,children:t.jsx(f.Text,{size:"sm",weight:"medium",color:"tertiary",children:U})})]})]})]}),!e&&t.jsx(wa,{template:o,openModalPublishTemplate:N,onHadleClickEditTemplateParams:H,onEditTasks:O,canDuplicateAndDeleteTemplates:q,onHandleClickDuplicateTemplate:M,openModalDeleteTemplate:A})]})})}),t.jsx(f.Card.Separator,{vertical:e}),t.jsx(f.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:o==null?void 0:o.params_plantillas.map(($,Y)=>{const z=w[$.params_tipo.order-1];return t.jsx(f.Badge,{color:z.color,theme:z.theme,label:$.name,size:"sm"},$.name)})}),!e&&t.jsx(f.Card.Separator,{vertical:e}),t.jsxs(f.Card.Footer,{className:"tm-flex tm-justify-between tm-w-full md:tm-w-auto tm-gap-x-4",children:[t.jsxs("div",{className:`tm-flex tm-flex-1 ${e?"tm-gap-x-2 md:tm-gap-20 lg:tm-gap-32 2xl:tm-gap-44":""}`,children:[t.jsx("div",{className:`tm-flex tm-gap-x-8 tm-justify-center tm-items-center tm-flex-1 ${e?"tm-flex-col":"tm-flex-row"}`,children:t.jsx(f.Tooltip,{label:"Tareas totales",children:t.jsxs("div",{className:`tm-flex tm-items-center tm-gap-8 ${e?"tm-flex-col":"tm-flex-row"}`,children:[t.jsx(f.Text,{size:"xs",weight:"semibold",color:"brand",children:(o==null?void 0:o.counts_tasks)||0}),t.jsx(f.Text,{size:"xs",weight:"regular",color:"tertiary",children:X})]})})}),t.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:t.jsx(f.Tooltip,{label:"Tareas totales",children:t.jsxs("div",{className:`tm-flex tm-items-center tm-gap-8 ${e?"tm-flex-col":"tm-flex-row"}`,children:[t.jsx(f.Text,{size:"xs",weight:"semibold",color:"brand",children:(o==null?void 0:o.dias_duracion)||0}),t.jsx(f.Text,{size:"xs",weight:"regular",color:"tertiary",children:T})]})})}),t.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:[t.jsx(f.Text,{size:"xs",weight:"regular",color:"tertiary",children:"Editor"}),t.jsx(f.Tooltip,{label:V,children:t.jsx(f.Avatar,{src:I,size:"xxs",type:"people"})})]})]}),e&&i&&t.jsx(f.Card.Separator,{vertical:e}),i&&t.jsx("div",{className:`tm-w-auto ${e?"tm-flex tm-items-center":""}`,children:e&&t.jsx(wa,{template:o,openModalPublishTemplate:N,onHadleClickEditTemplateParams:H,onEditTasks:O,canDuplicateAndDeleteTemplates:q,onHandleClickDuplicateTemplate:M,openModalDeleteTemplate:A})})]})]})},hs=(e=7)=>{const a=(s,o)=>s>=o?{populate:"*"}:{miembro_padre:{fields:["id"]},idUser:{populate:"*"},miembros:{populate:a(s+1,o),filters:{idUser:{blocked:!1}}}};return{miembros:{populate:a(0,e),filters:{idUser:{blocked:!1}}}}},wr=e=>{const a=new Set,n=[],s=o=>{var i;if(Array.isArray(o))for(const r of o){const l=r,d=l==null?void 0:l.idUser;(d==null?void 0:d.id)!=null&&(d.email||d.nombre)&&(a.has(d.id)||(a.add(d.id),n.push({id:d.id,nombre:d.nombre??"",email:d.email??"",image:d.image}))),(i=l==null?void 0:l.miembros)!=null&&i.length&&s(l.miembros)}};return s(e),n},vr=async(e,a)=>{var l;const n=Ee.stringify({fields:["nombre","id"],populate:hs(2)},{encodeValuesOnly:!0}),s=await e.get(`/api/equipos/${a}?${n}`),o=((l=s.data)==null?void 0:l.data)??s.data,i=be(o),r=wr((i==null?void 0:i.miembros)??[]);return{team:{nombre:(i==null?void 0:i.nombre)??"",miembros:(i==null?void 0:i.miembros)??[]},members:r}},_r=e=>{const{tasks_api:a}=pe(),n=typeof e=="number"&&e>0&&!Number.isNaN(e)?e:null;return le.useQuery({queryKey:["equipo-flow-preview",n],queryFn:()=>vr(a,n),enabled:n!=null,staleTime:300*1e3})},Tr=3,Nr=e=>{if(!(e!=null&&e.id)&&(e==null?void 0:e.id)!==0)return null;const a=Number(e.id);return!Number.isNaN(a)&&a>0?a:null},Cr=({equipo:e})=>{var p;const a=Nr(e),n=((p=e==null?void 0:e.nombre)==null?void 0:p.trim())??"",{data:s,isLoading:o,isError:i}=_r(a),{getImageByEmail:r,isLoading:l}=Wt();if(!a)return null;const d=((s==null?void 0:s.team.nombre)??n).trim()||"Equipo",c=(s==null?void 0:s.members)??[],m=d,g=[...c].map(h=>{var y;return{src:r(h.email),name:((y=h.nombre)==null?void 0:y.trim())||h.email}}).sort((h,y)=>+!!y.src-+!!h.src),x=t.jsx("div",{className:"tm-flex tm-items-center tm-justify-center",children:o||l?t.jsx("div",{className:"tm-flex tm-items-center",children:[0,1,2].map(h=>t.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 ${h>0?"tm-ml-[-12px]":""}`},h))}):c.length>0?t.jsx(f.Avatar,{counterColor:"blue",counterTheme:"solid",maxVisible:Tr,size:"xs",stack:g,stroke:!0}):t.jsx(f.Avatar,{size:"xs",stroke:!0,type:"people"})});return t.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:[t.jsx(f.Tooltip,{preserveLayout:!0,label:i&&!n?"Equipo":m,children:x}),t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Equipo"})]})},Sr={1:"blue",2:"green",3:"red",4:"yellow"},Er=({difficulty:e})=>t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end tm-gap-2",children:[t.jsx(f.Icon,{name:de.faRhombus,size:"md",color:Sr[e]}),t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Dificultad"})]}),Pr=({duration:e})=>t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end",children:[t.jsx("p",{className:"tm-text-icon-all-colors-blue tm-text-body-lg-regular tm-leading-none tm-font-semibold",children:e}),t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Duración"})]}),Ar={1:"neutral",2:"blue",3:"yellow",4:"red"},Ir=({priority:e})=>t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-end tm-gap-2",children:[t.jsx(f.Icon,{name:de.faFlag,size:"md",color:Ar[e]}),t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Prioridad"})]});class Dr{static toUsers(a){return{id:a.id,name:a.nombre,image:a.image,email:a.email}}}const Fr=async({tasks_api:e})=>{try{const a=Ee.stringify({filters:{blocked:!1}},{encodeValuesOnly:!0}),n=await e.get(`/api/users?${a}`);return be(n.data).map(Dr.toUsers).sort((o,i)=>o.name.localeCompare(i.name))}catch(a){throw console.log("Error al obtener los usuarios comerciales",a),`Error al obtener los usuarios comerciales: ${a}`}},ht=()=>{const{tasks_api:e}=pe(),a=le.useQuery({queryKey:["users-mt"],queryFn:()=>Fr({tasks_api:e}),staleTime:1e3*60*60*24});return{isLoading:a.isLoading,users:a.data}},Mr=(e,a,n)=>{var r;const s=(r=e==null?void 0:e.email)==null?void 0:r.trim();if(s){const l=a(s);return l||s}const o=e==null?void 0:e.id,i=o!==""&&o!=null&&!Number.isNaN(Number(o))?Number(o):NaN;if(!Number.isNaN(i)&&(n!=null&&n.length)){const l=n.find(d=>d.id===i);if(l!=null&&l.name)return l.name}return""},kr=({responsible:e})=>{const{isLoading:a,users:n}=ht(),{getImageByEmail:s,getNameByEmail:o,isLoading:i}=Wt();if(a||i)return null;const r=Mr(e,o,n),l=t.jsx(f.Avatar,{size:"xs",src:s((e==null?void 0:e.email)??""),type:"people"});return t.jsxs("div",{className:"tw-flex tw-flex-col tw-items-center tw-justify-end",children:[r?t.jsx(f.Tooltip,{label:r,children:l}):l,t.jsx("p",{className:"ui-text-body-xs-regular ui-text-tertiary ui-font-body-xs-normal",children:"Responsable"})]})},Or=[{label:"Muy alta",value:4,icon:de.faFlag,iconColor:"red"},{label:"Alta",value:3,icon:de.faFlag,iconColor:"yellow"},{label:"Media",value:2,icon:de.faFlag,iconColor:"blue"},{label:"Baja",value:1,icon:de.faFlag,iconColor:"neutral"}],Lr=[{label:"Muy alta",value:4,icon:de.faRhombus,iconColor:"red"},{label:"Alta",value:3,icon:de.faRhombus,iconColor:"yellow"},{label:"Media",value:2,icon:de.faRhombus,iconColor:"blue"},{label:"Baja",value:1,icon:de.faRhombus,iconColor:"neutral"}],Br=[{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}],xs=({isOpen:e,onClose:a,onSuccess:n,nodeDataType:s,parentNodeInfo:o,editMode:i=!1,taskToEdit:r})=>{const{data:l}=Ma(),{users:d}=ht(),{users:c}=st(),{getImageOBP:m}=pe(),g=u.useMemo(()=>{try{return!d||!c?[]:d.map(N=>{const A=c[N.email],T=A!=null&&A.image?m(A.image):"";return{label:N.name,value:N.id.toString(),icon:T}})}catch(N){return console.error("Error mapeando usuarios:",N),[]}},[d,c]),x=()=>{if(i&&r){const N=U=>{if(U==null)return"";const L=Number(U);return isNaN(L)?"":L},A=U=>U?typeof U=="string"?Number(U)||"":U.id||"":"",T=U=>{var L;return U?typeof U=="string"?U:((L=U.id)==null?void 0:L.toString())||U.name||U.nombre||"":""};return{title:r.texto_corto||"",description:r.texto_largo||"",priority:N(r.prioridad),difficulty:N(r.nivel_dificultad),duration:N(r.duracion),team:A(r.equipo),responsible:T(r.responsable),type:"tarea"}}return{title:"",description:"",priority:"",difficulty:"",duration:"",team:"",responsible:"",type:"tarea"}},{control:p,handleSubmit:h,formState:{errors:y,isValid:w},reset:j,watch:b}=Pe.useForm({mode:"onChange",defaultValues:x()});u.useEffect(()=>{e&&j(x())},[e,i,r,j]);const v=b(),O=w&&v.title&&v.description&&v.priority&&v.difficulty&&v.duration&&v.team&&Object.keys(y).length===0,H=async N=>{try{if(["title","description","priority","difficulty","duration","team"].filter(X=>!N[X]).length>0)return;n&&await n({...N,parent:o}),i||j()}catch{}},M=()=>{j(),a()};return t.jsx(f.Drawer,{titleIcon:de.faPencil,isOpen:e,onClose:M,onSuccess:()=>{h(N=>{H(N)},N=>{const A=Object.entries(N).map(([T,X])=>`${T}: ${X.message}`).join(`
4
+ ${S==="second"?"":"tm-translate-x-0"}
5
+ `,children:ae()})})]})})},Ce={texts:{subtext:"#4f4f4f",placeholder:"#929292"},primary:{regular:"#425CAC"},success:{dark:"#368156",regular:"#43B071"},danger:{dark:"#8C352C",regular:"#C34335"},warning:{dark:"#B4782F",regular:"#D38A31"}},zo=({id:e,idAtraso:t})=>{const[n,o]=u.useState(!1),{completeTask:s}=Ke();return{checked:n,checkTask:()=>{o(!n),s({id:e,idAtraso:t})}}},ja={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"},qo="tm-mx-[2px] tm-flex tm-items-center tm-justify-center tm-rounded-full tm-bg-success-regular tm-transition-all",wa="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",ns=({id:e,nameRequiredTask:t,statusRequiredTask:n,status:o,idAtraso:s,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}=zo({id:e,idAtraso:s}),x=!!(t&&t!==""&&n===2)||!t,j=!!r,w=o===1&&d,b=()=>a.jsx("label",{htmlFor:m,className:f?ja.checked:ja.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:Ce.texts.placeholder},color:"current"})});return o===2?a.jsx("div",{className:qo,children:a.jsx(p.Icon,{name:de.faCircleCheck,size:"xs",style:{color:"white"},color:"current"})}):j?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:Ce.warning.regular},color:"current"})}),children:a.jsxs("div",{className:wa,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."})]})}),w&&b()]}),a.jsx("input",{id:m,checked:f,onChange:h,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:h,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:Ce.warning.regular},color:"current"})}),children:a.jsxs("div",{className:wa,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 $o({items:e}){var o;const[t,n]=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(s=>a.jsx("div",{className:"tm-border-r tm-border-black-light",children:a.jsx(p.Button,{color:"tertiary",pill:"none",size:"xs",active:t===s.id,onClick:()=>n(s.id),children:s.label},s.id)},s.id))}),a.jsx("div",{className:"tm-flex-1 tm-overflow-y-auto tm-bg-surface-default tm-pt-4",children:(o=e.find(s=>s.id===t))==null?void 0:o.component})]})}function Uo({comment:e}){var s,i,r,l,d;const{getImageOBP:t}=fe(),n=(l=(r=(i=(s=e==null?void 0:e.autor)==null?void 0:s.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:Lt.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:n?t(n):"",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 Ho({currentUser:e,data:t,taskId:n,onNewComment:o}){var g,x,j;const{tasks_api:s,getImageOBP:i}=fe(),{control:r,handleSubmit:l,reset:d}=Ae.useForm({defaultValues:{comment:""}}),[c,m]=u.useState([]),f=(j=(x=(g=e==null?void 0:e.imagen)==null?void 0:g.formats)==null?void 0:x.thumbnail)==null?void 0:j.url;u.useEffect(()=>{if(t!=null&&t.comentarios){const w=[...t.comentarios].sort((b,y)=>new Date(y.createdAt).getTime()-new Date(b.createdAt).getTime());m(w)}},[t]);const h=async w=>{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:w.comment,createdAt:new Date().toISOString(),updatedAt:null};await s.post("/api/comentarios",{data:{autor:e==null?void 0:e.id,comentario:w.comment,tarea:n}}),o(!0),m(y=>[b,...y]),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(h),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(Ae.Controller,{name:"comment",control:r,rules:{required:"Escribe un comentario"},render:({field:w,fieldState:{error:b}})=>a.jsx(p.Input,{fullWidth:!0,placeholder:"Escribe un comentario",autoComplete:"off",size:"xs",error:b==null?void 0:b.message,...w,value:w.value??""})})})]}),c&&c.map((w,b)=>a.jsx(Uo,{comment:w},b))]})}function Ko(e,t){const n=(e==null?void 0:e.trim())??"";return n?/^https?:\/\//i.test(n)?n:t(n):""}function Vo({data:e}){const{getImageOBP:t}=fe(),n={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=s=>s?ot.format(new Date(s),"d MMM",{locale:Lt.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((s,i)=>{var m,f,h,g,x,j,w,b,y,v,S,O;const r=s==null?void 0:s.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)??((j=(x=(g=r==null?void 0:r.imagen)==null?void 0:g.formats)==null?void 0:x.thumbnail)==null?void 0:j.url)??((v=(y=(b=(w=r==null?void 0:r.userOBP)==null?void 0:w.imagen)==null?void 0:b.formats)==null?void 0:y.thumbnail)==null?void 0:v.url),d=(s==null?void 0:s.createdAt)??(s==null?void 0:s.created_at),c=Ko(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:((S=s==null?void 0:s.texto_corto)==null?void 0:S.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 ${((O=n[s==null?void 0:s.estatus])==null?void 0:O.color)??"tm-bg-gray-400"}`})]})]},s.id!=null?String(s.id):`dep-${i}`)})})]})}function Go({id:e,texto_largo:t,user_id:n}){const[o,s]=u.useState(t),{updatingTask:i}=Ke(),r=async()=>{await i({id:e,data:{texto_largo:o},user:n})};return u.useEffect(()=>{s(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:s,onBlur:r,placeholder:"Agregar descripción",className:"tm-resize-none"})})}function va(e,t,n){var s;if(e!=null){const i=e instanceof Date?e:new Date(e);if(!Number.isNaN(i.getTime()))return n(i)}const o=(s=t==null?void 0:t.nombre)==null?void 0:s.trim();return o||n(null)}function os({isOpen:e,setIsOpen:t,taskId:n,initialFromList:o}){var L,E,I,N,X,H,z,F,G;const[s,i]=u.useState(null),[r,l]=u.useState(!1),[d,c]=u.useState(!1),[m,f]=u.useState(null),h=(N=(I=(E=(L=s==null?void 0:s.responsable)==null?void 0:L.imagen)==null?void 0:E.formats)==null?void 0:I.thumbnail)==null?void 0:N.url,{tasks_api:g,getImageOBP:x}=fe(),{user:j}=ve(),w=u.useRef({taskId:null,source:"none"}),b=Number(s==null?void 0:s.estatus),y=Number.isFinite(b)?b:-1,v=ft(j==null?void 0:j.role,y);u.useEffect(()=>{const D=async()=>{const V=await g.get(`/api/users/${j.id}`);f(V==null?void 0:V.data)};if(r){(async()=>{const R=await g.get(`/api/detalleTarea/${n}`);i(R==null?void 0:R.data),w.current={taskId:n,source:"api"}})(),D();return}if(!e){i(null),w.current={taskId:null,source:"none"};return}if(!n)return;const{taskId:$,source:B}=w.current;if($===n&&(B==="api"||B==="list")){B==="list"&&o&&i(V=>{if(!V)return o;const R=o.ids_t_dependientes;if(!Array.isArray(R))return V;const ae=Array.isArray(V.ids_t_dependientes)?V.ids_t_dependientes.length:0,ee=R.length;return ee>ae||ae===0&&ee>0?{...V,ids_t_dependientes:R}:V}),D();return}if(w.current.taskId!=null&&w.current.taskId!==n&&(w.current={taskId:null,source:"none"}),o){i(o),w.current={taskId:n,source:"list"},D();return}(async()=>{const V=await g.get(`/api/detalleTarea/${n}`);i(V==null?void 0:V.data),w.current={taskId:n,source:"api"}})(),D()},[e,n,r,j.id,g,o]);const S=D=>D?ot.format(D,"d MMM yyyy, h:mmaaa",{locale:Lt.es}):"Fecha no disponible",O=u.useMemo(()=>[{id:1,label:"Todo",component:a.jsx(Ho,{taskId:n,currentUser:m,data:s,onNewComment:l})},{id:2,label:"Dependencias",component:a.jsx(Vo,{data:s==null?void 0:s.ids_t_dependientes})}],[s,n,m]);return e&&kt.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=s==null?void 0:s.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:Ce.warning.regular},color:"current"})}),d&&(()=>{var $;const D=it(s==null?void 0:s.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:($=s==null?void 0:s.id_t_requerida)==null?void 0:$.texto_corto}),D&&a.jsxs(p.Text,{type:"body",size:"xs",weight:"medium",children:["Responsable: ",a.jsx("span",{className:"tm-font-normal",children:D})]})]})})()]}):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:[s==null?void 0:s.texto_corto,(s==null?void 0:s.atraso)&&a.jsx(p.Tooltip,{label:(H=s==null?void 0:s.atraso)==null?void 0:H.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:Ce.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:[s==null?void 0:s.campania," / ",s==null?void 0:s.nombre_medio]})}),a.jsx(Go,{id:n,texto_largo:s==null?void 0:s.texto_largo,user_id:j.id}),a.jsx(p.Accordion,{id:`details-task-detalles-${n}`,title:"Detalles",defaultOpen:!0,className:"tm-mt-6 tm-w-full",headerClassName:"tm-border-b tm-border-black-light tm-pb-4",children: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=s==null?void 0:s.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:h?x(h):"",alt:"@shadcn"}),a.jsx(p.Text,{children:(F=s==null?void 0:s.responsable)==null?void 0:F.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:((G=s==null?void 0:s.equipo)==null?void 0:G.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(Wt,{priority:parseInt(String(s==null?void 0:s.prioridad),10)||0,id:n,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(Gt,{difficulty:(s==null?void 0:s.nivel_dificultad)!=null&&(s==null?void 0:s.nivel_dificultad)!==""?Number(s.nivel_dificultad):void 0,id:n,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:(s==null?void 0:s.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:S(s==null?void 0:s.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:S(s==null?void 0:s.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:S(s==null?void 0:s.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:va(s==null?void 0:s.createdAt,s==null?void 0:s.createdBy,S)})]}),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:va(s==null?void 0:s.updatedAt,s==null?void 0:s.updatedBy,S)})]})]})}),a.jsx($o,{items:O})]})})]}),document.body)}class Wo{static toPauseReasons(t){return{id:t.id,motivo_imj:t.motivo_imj}}}const Qo=async({tasks_api:e})=>{try{const t=await e.get("/api/motivos");return je(t.data).map(Wo.toPauseReasons)}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},Xo=()=>{const{tasks_api:e}=fe();return{pauseReasons:le.useQuery({queryKey:["pause_task_reasons"],queryFn:()=>Qo({tasks_api:e}),staleTime:1e3*60*60*24})}},Qt=30,Xt=e=>{var t;if(e!=null&&e.hasNextPage){const n=(t=e==null?void 0:e.data)==null?void 0:t.pages[e.data.pages.length-1],o=n!=null&&typeof n=="object"&&!Array.isArray(n)&&"tasks"in n&&Array.isArray(n.tasks)?n.tasks:Array.isArray(n)?n:null;((o==null?void 0:o.length)??0)===Qt&&(e==null||e.fetchNextPage())}},gt=e=>({pagination:{page:e,pageSize:Qt,withCount:!0}}),rs=()=>{var d;const e=le.useQueryClient(),{tasks_api:t}=fe(),{user:n}=ve(),{filters:o}=ke(),[s,i]=u.useState({owner:{user:n.id,config:ze((d=o==null?void 0:o.owner)==null?void 0:d.config,n.role),role:n.role},status:"por_hacer"}),r=le.useInfiniteQuery({initialPageParam:1,queryKey:["to_do_tasks",s],queryFn:({pageParam:c})=>pt({filters:{...s,status:"por_hacer",...gt(c)},tasks_api:t}),staleTime:1e3*60*60*24,getNextPageParam:(c,m)=>m.length+1}),l=u.useMemo(()=>{var c,m,f;return((f=(m=(c=r.data)==null?void 0:c.pages)==null?void 0:m[0])==null?void 0:f.total)??0},[r.data]);return u.useEffect(()=>{var c;Object.keys(o).length>0&&i({...o,owner:{user:n.id,config:ze((c=o==null?void 0:o.owner)==null?void 0:c.config,n.role),role:n.role},status:"por_hacer"})},[o,n.id,n.role]),u.useEffect(()=>{e.invalidateQueries({queryKey:["to_do_tasks",s]})},[s,e]),{toDoTasks:r,total:l,filtersToSend:s}};function Yo(e){return(e??[]).map(t=>({id:t.id,label:t.motivo_imj}))}const Jo=({idTask:e,setOpen:t,paused:n})=>{const o=le.useQueryClient(),{toDoTasks:s,filtersToSend:i}=rs(),[r,l]=u.useState(!1),[d,c]=u.useState(null),{tasksProject:m}=st(),{postPauseTask:f,postReanudeTask:h}=Ke(),{pauseReasons:g}=Xo(),x=Yo(g==null?void 0:g.data),j=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"]}),s&&typeof s.refetch=="function"||m&&typeof m.refetch=="function"){const b=await s.refetch(),y=await m.refetch();return[b,y]}}catch(b){console.error("Error al pausar la tarea:",b)}},w=async()=>{try{if(t(!1),await h({id:e}),await o.invalidateQueries({queryKey:["to_do_tasks",i]}),await o.invalidateQueries({queryKey:["tasksProject"]}),s&&typeof s.refetch=="function"||m&&typeof m.refetch=="function"){const b=await s.refetch(),y=await m.refetch();return[b,y]}}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?"})]}):n?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 y=Number(b);Number.isNaN(y)||c(y)},onOptionSelect:b=>{const y=Number(b.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"}),n?a.jsx(p.Button,{type:"button",onClick:()=>w(),size:"xs",color:"primary",children:"Si, reanudar"}):a.jsx(p.Button,{type:"button",disabled:!d,onClick:()=>r?j():l(!0),size:"xs",color:"primary",children:"Aceptar"})]})]})})},is=({idTask:e,paused:t,popupId:n,children:o})=>{const s=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=s.current)==null||h.close()},[]);return u.useEffect(()=>{if(!r)return;const h=g=>{const x=g.target;x instanceof Element&&(x.closest(`[data-popup-id="${n}"]`)||x.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,n,m]),a.jsxs(a.Fragment,{children:[o(i),a.jsx(p.Popup,{ref:s,triggerRef:i,popupId:n,position:"bottom-left",offset:5,closeOnClick:!1,closeOnClickOutside:!1,popoverArrow:!1,onOpen:()=>{l(!0),c(h=>h+1)},onClose:()=>l(!1),children:a.jsx(Jo,{idTask:e,paused:t,setOpen:h=>{h||f()}},d)})]})},Zo=({id:e,task:t,endDate:n,users:o,willBePaused:s,nameProject:i,comments:r,priority:l,difficulty:d,responsible:c,nameRequiredTask:m,nameRequiredTaskResponsible:f,statusRequiredTask:h,status:g,repeatsToDo:x,repeats:j,medioName:w,paused:b,idProject:y,atraso:v,categoria:S,cambio_arte:O,name_father_required_task:L,name_father_required_task_responsible:E,panelDataFromList:I,boardColumnTitle:N,isBulkColumnLocked:X=!1})=>{const[H,z]=u.useState(!1),F=u.useId(),{reasignResponsible:G,updateUnitys:D}=Ke(),{getOBPUrlApi:$}=fe(),[B,U]=u.useState(j??0);u.useEffect(()=>{U(j??0)},[j]);const V=Number(j??0),R=Number(x??0),ae=R>0&&V===R,ee=R>1&&!ae,A=R<=1,K=g===0,Y=!ee&&(ae||A||K)&&g!==2,k=(m??"")!==""&&h===2,{user:P}=ve(),W=ft(P==null?void 0:P.role,g),_=Kt(),C=!!(_!=null&&_.selectedTaskIds.includes(e)),q=Y&&(k||!m),M=!!_&&!!N&&N!=="Completadas"&&!X,T=M&&q,Q=M&&!q&&!!(_!=null&&_.isBulkSessionActive),Z=!!(_!=null&&_.isMultiSelectActive&&T&&k),te=!T||!!(_!=null&&_.isBulkLoading),re=pe=>{!_||!N||te||_.toggleTaskSelection(e,N)},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&&(L||ae||A||K)&&a.jsx("span",{"data-prevent-bulk-select":!0,children:a.jsx(ns,{id:e,nameRequiredTask:m??"",statusRequiredTask:h??0,status:g,idAtraso:v==null?void 0:v.atrasoId,nameRequiredTaskResponsible:f,name_father_required_task:L,name_father_required_task_responsible:E,repeatsAreCompleted:ae})}),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}-${F}`,size:"sm",checked:C,disabled:te,onChange:re})}):null,a.jsx(Ro,{id:e,nameRequiredTask:m,status:g,statusRequiredTask:h,projectID:y,atrasoId:v==null?void 0:v.atrasoId,categoria:S,disabled:Z})]})]}),se=pe=>{const be=R>0?R:Number(x??0);U(Ee=>{const we=Number.isFinite(Number(Ee))?Number(Ee):V;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} ${C?"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}),w&&a.jsx(p.Text,{type:"body",size:"sm",weight:"medium",children:w})]}),O&&a.jsx(p.Badge,{label:O.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(ss,{responsible:c,responsibleCandidateIds:o.map(pe=>pe.id),role:P==null?void 0:P.role,status:g,users:o.filter(pe=>c?pe.id===c:!0).map(pe=>$t(pe,$())),onClick:async(pe,be)=>{await G({idNewResponsible:pe,id:e,typeOfSelect:be})}}),s&&a.jsx(is,{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((S==null?void 0:S.tipo)??"P"),color:me((S==null?void 0:S.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(Gt,{difficulty:d,id:e,canEdit:W}),a.jsx(Wt,{priority:l,id:e,canEdit:W}),!x||x&&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:`${n.getDate()} ${qt(n.getMonth()).slice(0,3)}`})]})]}),g===1&&R>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:`${B??0} / ${R}`}),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:B===V,onClick:()=>{D({repeats:B,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(os,{taskId:e,isOpen:H,setIsOpen:z,initialFromList:I??void 0})]})},ht=({title:e,tasks:t,loadNextPage:n,isFetching:o,total:s,bulkSelectAllIds:i})=>{const r=u.useRef(null),l=u.useRef(null),d=u.useRef(!1);u.useEffect(()=>{const w=r.current,b=l.current;w&&b&&(b.style.minHeight=`${w.clientHeight-300}px`)},[]);const c=w=>{if(d.current)return;const{scrollTop:b,clientHeight:y,scrollHeight:v}=w.currentTarget,S=v-y,O=S===0?0:b/S*100;O<=95||O>=95&&(d.current=!0,n&&n(),setTimeout(()=>{d.current=!1},200))},m={"Por hacer":"tm-border-texts-placeholder",Trabajando:"tm-border-primary-regular",Completadas:"tm-border-success-regular"},f=Kt(),h=e,g=!!(f!=null&&f.baseColumn&&f.baseColumn!==e),x=!!f&&e!=="Completadas"&&(f==null?void 0:f.isBulkSessionActive)&&f.baseColumn===e&&typeof i=="function",j=()=>{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}),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:j,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:s??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(w=>a.jsx(Zo,{...w,boardColumnTitle:f?h:void 0,isBulkColumnLocked:!!(f&&g)},w.id)),o?a.jsx(wo,{}):a.jsx("p",{className:"tm-text-center tm-text-sm tm-text-light-gray-900",children:"No hay más tareas por mostrar..."})]})]})},_a=[{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"}]}],er=()=>{const{user:e}=ve(),[t,n]=u.useState([..._a]),o=[{roles:[...Ht],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return u.useEffect(()=>{const s=[..._a];o.forEach(l=>{if(l.roles.includes(e.role)){const d=s.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(s);i!==r&&n(s)},[e.role]),{filters:t}},tr="/api/tareas/bulk-update-status";async function ar(e,t){const{data:n}=await e.post(tr,t);return n}function sr(e){var t,n,o,s;if(at.isAxiosError(e)){const i=(t=e.response)==null?void 0:t.status,r=(n=e.response)==null?void 0:n.data;if(i===400){if(typeof r=="string"&&r.trim().length>0)return r.trim();if(r&&typeof r=="object"){const l=r.message;if(typeof l=="string"&&l.trim())return l.trim();const d=(o=r.details)==null?void 0:o.errors,c=(s=d==null?void 0:d[0])==null?void 0:s.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 nr(){const{tasks_api:e}=fe(),{user:t}=ve();return le.useMutation({mutationKey:["tareas","bulk-update-status"],mutationFn:async n=>{const o=n.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 ar(e,{...n,user_id:o})}catch(s){throw new Error(sr(s))}}})}const _t={MOVE_TO_TRABAJANDO:"kanban-bulk-move-trabajando",MOVE_TO_POR_HACER:"kanban-bulk-move-por-hacer",MOVE_TO_COMPLETADAS:"kanban-bulk-move-completadas"};function or(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 Tt="secondary";function rr(e){const t=or({setActiveButtonId:e.setActiveButtonId,setPendingTargetStatus:e.setPendingTargetStatus,onConfirmBulkMove:e.onConfirmBulkMove,isBulkLoading:e.isBulkLoading});return e.baseColumn==="Por hacer"?[{id:_t.MOVE_TO_TRABAJANDO,label:"Mover a trabajando",icon:ne.faArrowRight,color:Tt,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(1)},addons:t}]:e.baseColumn==="Trabajando"?[{id:_t.MOVE_TO_POR_HACER,label:"Mover a por hacer",icon:ne.faArrowLeft,color:Tt,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(0)},addons:t},{id:_t.MOVE_TO_COMPLETADAS,label:"Mover a completadas",icon:ne.faArrowRight,color:Tt,disabled:e.isBulkLoading,onClick:()=>{e.isBulkLoading||e.setPendingTargetStatus(2)},addons:t}]:[]}const ir="Seleccionados";function ls(){const e=Kt(),[t,n]=u.useState(null),o=t!==null,s=le.useQueryClient(),{mutate:i}=nr(),r=(e==null?void 0:e.selectedTaskIds.length)??0;u.useEffect(()=>{r===0&&n(null)},[r]);const l=u.useCallback(()=>{e!=null&&e.isBulkLoading||e==null||e.setPendingTargetStatus(null)},[e]),d=u.useCallback(()=>{n(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(s),n(null),e.exitBulkSelectionMode()},onError:()=>{n(null),e.setPendingTargetStatus(null)}})},[e,i,s]),m=u.useMemo(()=>e?rr({baseColumn:e.baseColumn,setPendingTargetStatus:e.setPendingTargetStatus,setActiveButtonId:n,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:ir,activeButtonId:t,onActiveButtonIdChange:n,onBackClick:l,buttons:m,onClose:d,showCounterInButtonsView:!o,showBackButton:!o,showCloseButton:!o})}const cs=["to_do_tasks","working_tasks","done_tasks"],lr="tasksProject";function cr(e){return Promise.all(cs.map(t=>e.invalidateQueries({queryKey:[t]}))).then(()=>{})}function dr(e){return Promise.all(cs.flatMap(t=>[e.invalidateQueries({queryKey:[t]}),e.refetchQueries({queryKey:[t]})])).then(()=>{})}function mr(e){return e.invalidateQueries({queryKey:[lr]}).then(()=>{})}function ur(e){const t=!!(e.repeatsToDo&&e.repeats===e.repeatsToDo),n=!e.repeatsToDo||e.repeatsToDo===1,o=e.status===0;return t||n||o}function pr(e,t){return(e??"")!==""&&(t??0)===2||!(e??"")}function ds(e){return e.status===2||!ur(e)?!1:pr(e.nameRequiredTask,e.statusRequiredTask)}const fr=["Por hacer","Trabajando","Completadas"],gr=()=>{const{defineFields:e}=ke(),{tasksProject:t}=st(),{filters:n}=er();u.useEffect(()=>{e([...n])},[e,n]);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(es,{invalidateAfterBulkSuccess:mr,children:[a.jsx(ls,{}),a.jsx("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-gap-8",children:fr.map((s,i)=>{const r=(o==null?void 0:o[i])??[];return a.jsx(ht,{total:r.length,title:s,tasks:r,isFetching:t==null?void 0:t.isFetching,isLoadingData:t==null?void 0:t.isLoading,bulkSelectAllIds:()=>Promise.resolve(r.filter(l=>ds({status:l.status,nameRequiredTask:l.nameRequiredTask,statusRequiredTask:l.statusRequiredTask,repeatsToDo:l.repeatsToDo,repeats:l.repeats})).map(l=>l.id))},s)})})]})};async function ms(e){const t=[];let n=1;for(;;){const{tasks:o}=await pt({filters:{...e.filters,status:e.status,...gt(n)},tasks_api:e.tasks_api});for(const s of o)ds({status:s.status,nameRequiredTask:s.nameRequiredTask,statusRequiredTask:s.statusRequiredTask,repeatsToDo:s.repeatsToDo,repeats:s.repeats})&&t.push(s.id);if(o.length<Qt)break;n+=1}return t}const hr=()=>{var i,r;const{tasks_api:e}=fe(),{toDoTasks:t,total:n,filtersToSend:o}=rs(),s=[...((r=(i=t==null?void 0:t.data)==null?void 0:i.pages)==null?void 0:r.flatMap(l=>l.tasks))??[]];return a.jsx(ht,{total:n,title:"Por hacer",tasks:s,loadNextPage:()=>Xt(t),isFetching:t==null?void 0:t.isFetching,isLoadingData:t==null?void 0:t.isLoading,bulkSelectAllIds:()=>ms({tasks_api:e,filters:o,status:"por_hacer"})})},xr=()=>{var d;const e=le.useQueryClient(),{tasks_api:t}=fe(),{user:n}=ve(),{filters:o}=ke(),[s,i]=u.useState({owner:{user:n.id,config:ze((d=o==null?void 0:o.owner)==null?void 0:d.config,n.role),role:n.role},status:"trabajando"}),r=le.useInfiniteQuery({initialPageParam:1,queryKey:["working_tasks",s],queryFn:({pageParam:c})=>pt({filters:{...s,status:"trabajando",...gt(c)},tasks_api:t}),staleTime:1e3*60*60*24,getNextPageParam:(c,m)=>m.length+1}),l=u.useMemo(()=>{var c,m,f;return((f=(m=(c=r.data)==null?void 0:c.pages)==null?void 0:m[0])==null?void 0:f.total)??0},[r.data]);return u.useEffect(()=>{var c;Object.keys(o).length>0&&i({...o,owner:{user:n.id,config:ze((c=o==null?void 0:o.owner)==null?void 0:c.config,n.role),role:n.role},status:"trabajando"})},[o,n.id,n.role]),u.useEffect(()=>{e.invalidateQueries({queryKey:["working_tasks",s]})},[s,e]),{workingTasks:r,total:l,filtersToSend:s}},br=()=>{var i,r;const{tasks_api:e}=fe(),{workingTasks:t,total:n,filtersToSend:o}=xr(),s=[...((r=(i=t==null?void 0:t.data)==null?void 0:i.pages)==null?void 0:r.flatMap(l=>l.tasks))??[]];return a.jsx(ht,{total:n,title:"Trabajando",tasks:s,loadNextPage:()=>Xt(t),isFetching:t==null?void 0:t.isFetching,bulkSelectAllIds:()=>ms({tasks_api:e,filters:o,status:"trabajando"})})},yr=()=>{var d;const e=le.useQueryClient(),{user:t}=ve(),{tasks_api:n}=fe(),{filters:o}=ke(),[s,i]=u.useState({owner:{user:t.id,config:ze((d=o==null?void 0:o.owner)==null?void 0:d.config,t.role),role:t.role},status:"completadas"}),r=le.useInfiniteQuery({initialPageParam:1,queryKey:["done_tasks",s],queryFn:({pageParam:c})=>pt({filters:{...s,status:"completadas",...gt(c)},tasks_api:n}),staleTime:1e3*60*60*24,getNextPageParam:(c,m)=>m.length+1}),l=u.useMemo(()=>{var c,m,f;return((f=(m=(c=r.data)==null?void 0:c.pages)==null?void 0:m[0])==null?void 0:f.total)??0},[r.data]);return u.useEffect(()=>{var c;Object.keys(o).length>0&&i({...o,owner:{user:t.id,config:ze((c=o==null?void 0:o.owner)==null?void 0:c.config,t.role),role:t.role},status:"completadas"})},[o,t.id,t.role]),u.useEffect(()=>{e.invalidateQueries({queryKey:["done_tasks",s]})},[s,e]),{doneTasks:r,total:l,filtersToSend:s}},jr=()=>{var o,s;const{doneTasks:e,total:t}=yr(),n=[...((s=(o=e==null?void 0:e.data)==null?void 0:o.pages)==null?void 0:s.flatMap(i=>i.tasks))??[]];return a.jsx(ht,{title:"Completadas",tasks:n,loadNextPage:()=>Xt(e),isFetching:e==null?void 0:e.isFetching,total:t})};class ut{static toSalesmanUsers(t){return{id:t.id,name:t.nombre}}}const wr=()=>{const{tasks_api:e}=fe(),{filters:t}=ke(),{user:n}=ve(),o=async()=>(await e.get("/api/obtener-comerciales")).data.map(ut.toSalesmanUsers),s=async()=>{var l;return(await e.get("/api/listado_tareas",{params:{...sa(t),owner:{user:n.id,config:ze((l=t==null?void 0:t.owner)==null?void 0:l.config,n.role),role:n.role},justProjects:!0,cancelada:!1}})).data.map(ut.toSalesmanUsers)};return{getSalesmanAndProjects:u.useCallback(async(r={})=>{var g;const l={...t,...r},d=ze((r==null?void 0:r["owner.config"])??((g=t==null?void 0:t.owner)==null?void 0:g.config),n==null?void 0:n.role),c={...l};delete c["owner.config"];const m=sa(c),[f,h]=await Promise.all([e.get("/api/obtener-comerciales"),e.get("/api/listado_tareas",{params:{...m,owner:{user:n==null?void 0:n.id,config:d,role:n.role},justProjects:!0,cancelada:!1}})]);return{salesmanUsers:f.data.map(ut.toSalesmanUsers),projects:h.data.map(ut.toSalesmanUsers)}},[e,t,n==null?void 0:n.id,n==null?void 0:n.role]),getProjects:s,getSalesmans:o}},vr=()=>{const{user:e}=ve(),[t,n]=u.useState([...oa]),o=[{roles:[...Ht],id:"owner.config",filters:[{id:"todas",name:"Todas las tareas"}]}];return u.useEffect(()=>{const s=[...oa];o.forEach(l=>{if(l.roles.includes(e.role)){const d=s.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(s);i!==r&&n(s)},[e.role]),{filters:t}},_r=()=>{const{defineFields:e,initialFilters:t}=ke(),{getSalesmanAndProjects:n}=wr(),{filters:o}=vr(),s=(t==null?void 0:t["owner.config"])??"yo_y_mis_equipos";return u.useEffect(()=>{let i=!1;return(async()=>{const{salesmanUsers:l,projects:d}=await n({"owner.config":s});i||e(o.map(c=>c.id==="project.id"?{...c,options:d}:c.id==="salesman.id"?{...c,options:l}:c))})(),()=>{i=!0}},[e,o,n,s]),a.jsxs(es,{invalidateAfterBulkSuccess:cr,children:[a.jsx(ls,{}),a.jsxs("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-gap-8",children:[a.jsx(hr,{}),a.jsx(br,{}),a.jsx(jr,{})]})]})},us=u.createContext({}),Tr=({children:e})=>{const[t,n]=u.useState([]),o=s=>{n(i=>i.includes(s)?i.filter(r=>r!==s):[...i,s])};return a.jsx(us.Provider,{value:{selectedTasks:t,selectTask:o},children:e})},Nr=()=>u.useContext(us),Cr=()=>{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,{})})]})]})},ps=({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:[" ",fa(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:[" ",fa(t)]})]})]}),fs=({id:e,priority:t,difficulty:n,endDate:o,atraso:s,role:i,status:r})=>{const[l,d]=u.useState(!1),c=ft(i,r),m={0:{title:"N/A",color:Ce.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:Ce.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:Ce.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:Ce.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:Ce.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:Ce.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:Ce.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:Ce.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:Ce.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(n==null||Number.isNaN(Number(n)))return 1;const b=Math.trunc(Number(n));return b===0?1:b>=1&&b<=5?b:1},g=()=>{if(t==null||Number.isNaN(Number(t)))return 0;const b=Math.trunc(Number(t));return b>=0&&b<=3?b:0},x=f[h()]??f[1],j=m[g()]??m[0],w=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(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(Gt,{difficulty:n,id:e,canEdit:c})}),a.jsx("div",{className:`tm-gap-s ${j.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(Wt,{priority:g(),id:e,canEdit:c})}),(s==null?void 0:s.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:s==null?void 0:s.motivo})})})}),a.jsx(p.Icon,{name:ne.faCalendar,size:"xs",color:"current"}),a.jsx(p.Text,{children:w})]})]})},Sr=({id:e})=>{const{selectedTasks:t,selectTask:n}=Nr();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:Ce.primary.regular},color:"current"})})}),a.jsx("input",{className:"tm-hidden",id:e.toString(),type:"checkbox",onChange:()=>n(e)})]})},gs=({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})})}),Er=({id:e})=>{var d,c,m,f;const[t,n]=u.useState(!1),{tasksProject:o}=st(),{reasignResponsible:s}=Ke(),{getOBPUrlApi:i}=fe(),r=(d=o==null?void 0:o.data)==null?void 0:d.find(h=>h.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:()=>n(!0),children:[!(r!=null&&r.nameRequiredTask)||(r==null?void 0:r.nameRequiredTask)!==""&&(r==null?void 0:r.statusRequiredTask)===2&&a.jsx(Sr,{id:e}),a.jsx(ns,{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(is,{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(ss,{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 s({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=>$t(h,i())))??[]}),a.jsx(gs,{task:(r==null?void 0:r.task)??""}),a.jsx(fs,{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(ps,{startDate:r==null?void 0:r.startDate,endDate:r==null?void 0:r.endDate})]})}),a.jsx(os,{taskId:e,isOpen:t,setIsOpen:n,initialFromList:(r==null?void 0:r.panelDataFromList)??void 0})]})},hs=({id:e})=>{var d,c,m,f,h,g;const{user:t}=ve(),{tasksProject:n,openTasks:o,openTask:s}=st(),i=(d=n==null?void 0:n.data)==null?void 0:d.find(x=>x.id===e),l=(()=>{var w;const x=n==null?void 0:n.data,j=[];return(w=i==null?void 0:i.tasks)==null||w.forEach(b=>{const y=x.find(v=>v.id===(b==null?void 0:b.id));y&&j.push(y)}),j})();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:()=>s(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:Ce.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(gs,{task:(i==null?void 0:i.task)??""}),a.jsx(fs,{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(ps,{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(x=>a.jsx(hs,{id:x==null?void 0:x.id})):a.jsx(Er,{id:i==null?void 0:i.id})})]}):null},Ar=()=>{const{tasksProject:e,projectID:t}=st();if(e!=null&&e.isFetching||e!=null&&e.isLoading)return a.jsx(Cr,{});const o=((e==null?void 0:e.data)??[]).filter(s=>s.isPrincipalTask);return a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-m",children:a.jsx(Tr,{project:t,children:o.sort((s,i)=>(s.orden??0)-(i.orden??0)).map(s=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-m tm-border-b tm-border-default tm-pb-m ",children:a.jsx(hs,{id:s.id})}))})})};function Pr({title:e,color:t,icon:n}){return a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[a.jsx(p.Icon,{name:n,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 Dr({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:n=>t(n.target.value)})]})}const xs=({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:[]},Ir={"kanban-general":{...Ye},"lista-campanias":{...Ye},"kanban-campania":{...Ye},"teams-container":{...Ye},"templates-container":{...Ye}},xt=Qe.create((e,t)=>({viewFilters:Ir,currentPath:null,debounceTimeouts:{},setCurrentPath:n=>{const o=t().currentPath;e({currentPath:n}),o&&o!==n&&t().resetPathData(o)},setSearch:(n,o)=>{const s=o||t().currentPath;if(!s)return;const i=`search_${s}`,r=t().debounceTimeouts[i];r&&clearTimeout(r),e(d=>({viewFilters:{...d.viewFilters,[s]:{...d.viewFilters[s],search:n}}}));const l=setTimeout(()=>{e(d=>({viewFilters:{...d.viewFilters,[s]:{...d.viewFilters[s],debouncedSearch:n}},debounceTimeouts:{...d.debounceTimeouts,[i]:void 0}}))},500);e(d=>({debounceTimeouts:{...d.debounceTimeouts,[i]:l}}))},setFilters:(n,o)=>{const s=o||t().currentPath;s&&e(i=>({viewFilters:{...i.viewFilters,[s]:{...i.viewFilters[s],filters:n}}}))},getSearch:n=>{var s;const o=n||t().currentPath;return o&&((s=t().viewFilters[o])==null?void 0:s.search)||""},getDebouncedSearch:n=>{var s;const o=n||t().currentPath;return o&&((s=t().viewFilters[o])==null?void 0:s.debouncedSearch)||""},getFilters:n=>{var s;const o=n||t().currentPath;return o?((s=t().viewFilters[o])==null?void 0:s.filters)||[]:[]},resetPathData:n=>{const o=`search_${n}`,s=t().debounceTimeouts[o];s&&clearTimeout(s),e(i=>({viewFilters:{...i.viewFilters,[n]:{...Ye}},debounceTimeouts:{...i.debounceTimeouts,[o]:void 0}}))}}));function bs({path:e}){const{getSearch:t,setSearch:n}=xt(),o=t(e);return a.jsx(p.Input,{leftSlot:ne.faSearch,placeholder:"Buscar...",size:"xs",value:o,onChange:s=>n(s.target.value,e)})}const Ta={fase_plantilla:"",tipo_plantilla:"",modo_configuracion:"",categoria:"",formato_salida:"",tipo_medio:"",medio_especifico:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},Fr={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},Mr={fase_plantilla:"",tipo_plantilla:"",categoria:"",tipo_medio:"",medio_especifico:"",modo_configuracion:"",responsable_impresion:"",pertenencia_medio:"",ubicacion_medio:""},Na={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:Ta,disabledFields:Na,claveParams:Mr,paramsTipo:Fr,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(n=>({templateFormData:{...n.templateFormData,...t}}))},resetTemplateFormData:()=>e({templateFormData:Ta}),setDisableField:({fields:t,value:n})=>{for(const o of t)e(s=>({disabledFields:{...s.disabledFields,[o]:n}}))},resetDisabledFields:()=>e({disabledFields:Na}),setClaveParams:({field:t,value:n})=>{e(o=>({claveParams:{...o.claveParams,[t]:n}}))},resetClave:()=>e(()=>({clave:"XX-XXX-XX-XXX-XX-X-X"})),setParamTipo:t=>e(n=>({paramsTipo:{...n.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})})),ys=e=>{const{getSearch:t,getDebouncedSearch:n,setSearch:o,getFilters:s,setFilters:i,resetPathData:r}=xt();return{search:t(e),debouncedSearch:n(e),filters:s(e),setSearch:l=>o(l,e),setFilters:l=>i(l,e),resetData:()=>r(e)}},kr=()=>a.jsx(xs,{title:"Flujos de trabajo"}),qe=Qe.create(e=>({activeTemplate:null,setActiveTemplate:t=>e({activeTemplate:t}),clearActiveTemplate:()=>e({activeTemplate:null})})),_e=Qe.create((e,t)=>({mode:"grid",id:null,setMode:(n,o)=>{const s=t();if(n==="grid"||s.id!==null&&s.id!==o){const{clearAllGroupData:r}=t();r()}e({mode:n,id:o??null})},setId:n=>e({id:n}),reset:()=>{const{clearAllGroupData:n}=t();n(),e({mode:"grid",id:null})},addNode:null,addBranch:null,addNodeFromHandle:null,addNodeWithType:null,savePositions:null,loadPositions:null,clearPositions:null,activePlusNode:null,templateViewModes:{},setViewMode:(n,o)=>{const{templateViewModes:s}=t();e({templateViewModes:{...s,[n]:o}})},getViewMode:n=>{const{templateViewModes:o}=t();return o[n]??"readonly"},clearViewMode:n=>{const{templateViewModes:o}=t(),s={...o};delete s[n],e({templateViewModes:s})},flowViewportByTemplateId:{},setFlowViewportForTemplate:(n,o)=>{const{flowViewportByTemplateId:s}=t();e({flowViewportByTemplateId:{...s,[n]:{x:o.x,y:o.y,zoom:o.zoom}}})},expandedGroups:new Set,groupTemplateData:{},toggleGroupExpansion:n=>{const{expandedGroups:o}=t(),s=new Set(o);s.has(n)?s.delete(n):s.add(n),e({expandedGroups:s})},setGroupTemplateData:(n,o)=>{const{groupTemplateData:s}=t();e({groupTemplateData:{...s,[n]:o}})},clearGroupTemplateData:n=>{const{groupTemplateData:o}=t(),s={...o};delete s[n],e({groupTemplateData:s})},clearAllGroupData:()=>{e({expandedGroups:new Set,groupTemplateData:{}})},copiedNodes:[],setCopiedNodes:n=>e({copiedNodes:n}),clearCopiedNodes:()=>e({copiedNodes:[]}),expandGroup:null,collapseGroup:null})),js=()=>{const{tasks_api:e}=fe();return{getTemplateWithTasks:async n=>{var o;try{const s=De.stringify({filters:{plantilla:{id:n}}},{encodeValuesOnly:!0}),i=await e.get(`/api/plantillas/plantilla-tareas-grafico?${s}`);if(i.data&&i.data.data)return i.data.data;throw new Error(`No se encontraron datos para la plantilla con ID ${n}`)}catch(s){throw console.error("Error en getTemplateWithTasks:",{error:s.message,status:(o=s.response)==null?void 0:o.status}),s}}}},Te={DIRTY:"dirty",IDLE:"idle",NEW:"new"},Pe={DRAFT:"draft",PUBLISHED:"published",DELETED:"deleted"},Je="templates",Ze="templates_states";function Lr(e,t){return Qe.create((n,o)=>{let s=null;const i=f=>n({isLoading:f}),r=f=>n({error:f}),l=f=>n({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=()=>{s=g.result,n({isConnected:!0,error:null}),f(s)},g.onupgradeneeded=x=>{const j=x.target.result;e.stores.forEach(w=>{var b;if(!j.objectStoreNames.contains(w.name)){const y=j.createObjectStore(w.name,{keyPath:w.keyPath,autoIncrement:w.autoIncrement??!1});(b=w.indexes)==null||b.forEach(v=>{y.createIndex(v.name,v.keyPath,v.options)})}})}}),c=(f="readonly")=>{if(!s)throw new Error("Base de datos no conectada");return s.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:()=>{s&&(s.close(),s=null,n({isConnected:!1,data:[]}))},add:async f=>{try{i(!0),r(null);const h=m("readwrite");return new Promise((g,x)=>{const j=h.add(f);j.onsuccess=async()=>{await o().getAll(),g()},j.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 h=m("readwrite");return new Promise((g,x)=>{let j=0,w=!1;f.forEach(b=>{const y=h.add(b);y.onsuccess=()=>{j++,j===f.length&&!w&&o().getAll().then(()=>g())},y.onerror=()=>{w||(w=!0,r("Error al agregar elementos"),x(new Error("Error al agregar elementos")))}})})}finally{i(!1)}},get:async f=>{try{r(null);const h=m();return new Promise((g,x)=>{const j=h.get(f);j.onsuccess=()=>{g(j.result)},j.onerror=()=>{r("Error al obtener elemento"),x(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 x=f.getAll();x.onsuccess=()=>{const j=x.result;l(j),h(j)},x.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((x,j)=>{const w=g.get(f);w.onsuccess=()=>{const b=w.result;if(!b){r("Elemento no encontrado"),j(new Error("Elemento no encontrado"));return}const y={...b,...h},v=g.put(y);v.onsuccess=async()=>{await o().getAll(),x()},v.onerror=()=>{r("Error al actualizar elemento"),j(new Error("Error al actualizar elemento"))}},w.onerror=()=>{r("Error al obtener elemento para actualizar"),j(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,x)=>{const j=h.delete(f);j.onsuccess=async()=>{await o().getAll(),g()},j.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((h,g)=>{const x=f.clear();x.onsuccess=()=>{l([]),h()},x.onerror=()=>{r("Error al limpiar store"),g(new Error("Error al limpiar store"))}})}finally{i(!1)}},query:async(f,h)=>{try{r(null);const x=m().index(f);return new Promise((j,w)=>{const b=x.getAll(h);b.onsuccess=()=>{j(b.result)},b.onerror=()=>{r("Error en consulta"),w(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 j=m().index(f);return new Promise((w,b)=>{const y=IDBKeyRange.bound(h,g),v=j.getAll(y);v.onsuccess=()=>{w(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 Nt=new Map;function Ca(e,t,n=!0){const o=u.useMemo(()=>{const v=`${e.name}-${t}`;if(!Nt.has(v)){const S=Lr(e,t);Nt.set(v,S)}return Nt.get(v)},[e.name,t]);u.useEffect(()=>{n&&!o.getState().isConnected&&o.getState().connect()},[n,o]);const s=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]),x=u.useCallback((v,S)=>o.getState().update(v,S),[o]),j=u.useCallback(v=>o.getState().delete(v),[o]),w=u.useCallback(()=>o.getState().clear(),[o]),b=u.useCallback((v,S)=>o.getState().query(v,S),[o]),y=u.useCallback((v,S,O)=>o.getState().queryRange(v,S,O),[o]);return{data:s,isLoading:i,error:r,isConnected:l,connect:d,disconnect:c,add:m,addMany:f,get:h,getAll:g,update:x,delete:j,clear:w,query:b,queryRange:y}}const ws=u.createContext(void 0);function Or({children:e}){const[t,n]=u.useState(!1),[o,s]=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=Ca(l,Je,!0),c=Ca(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(j=>{const w=m.current.get(j);if(!w)throw new Error(`Store ${j} no encontrado. Asegúrate de que esté configurada en indexedDBConfig.`);return{data:w.data,isLoading:w.isLoading,add:w.add,addMany:w.addMany,get:w.get,getAll:w.getAll,update:w.update,delete:w.delete,clear:w.clear,query:w.query,queryRange:w.queryRange,error:w.error}},[]);u.useEffect(()=>{(async()=>{try{if(s(!0),r(null),await d.connect(),f)n(!0);else throw new Error("No se pudo establecer la conexión con IndexedDB")}catch(w){r(w instanceof Error?w.message:"Error desconocido")}finally{s(!1)}})()},[d.connect,f]),u.useEffect(()=>{h&&r(h)},[h]);const x={isInitialized:t,isInitializing:o,error:i,isConnected:f,getStore:g};return a.jsx(ws.Provider,{value:x,children:e})}function vs(){const e=u.useContext(ws);if(e===void 0)throw new Error("useIndexedDBContext debe usarse dentro de IndexedDBProvider");return e}function Yt(){const{getStore:e}=vs();return e(Je)}function _s(){const{add:e}=Yt(),t=async r=>{try{await e(r)}catch(l){console.error("Error al guardar plantilla a indexDB:",l)}},n=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},s=(r,l)=>{const d=l[r];if(!d)return[];const c=[d];return d.tarea_padre&&l[d.tarea_padre]&&c.unshift(...s(d.tarea_padre,l)),c};return{hydrateTasks:async r=>{var c,m;const l=await n(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:n,getTaskHierarchy:o,getTaskPath:s}}function Ts(){const{getStore:e}=vs();return e(Ze)}const ct=()=>{const{add:e,get:t,delete:n,update:o}=Ts(),{get:s}=Yt(),i={created:[],updated:[],deleted:[]},r=async({templateId:g})=>{const x=await t(g);return x||null};return{addTaskToState:async({task:g})=>{const x=await r({templateId:g.plantilla.id}),j=await s(g.plantilla.id);if(console.log("🔄 template:",j),!x)e({...i,id:g.plantilla.id,created:[...i.created,g]});else{const w=x.created.findIndex(b=>b.id===g.id);if(w!==-1){const b=x.created[w];x.created[w]={...b,...g},await o(g.plantilla.id,x)}else x.created.push(g),await o(g.plantilla.id,x)}},getTaskFromState:r,removeTemplateStates:async g=>{await n(g)},updateTaskInState:async({task:g})=>{const x=await r({templateId:g.plantilla.id}),w=(await s(g.plantilla.id)).graph_layout.snapshot.nodes;if(console.log("🔄 nodes:",w),x){const b=x.updated.findIndex(y=>y.id===g.id);if(b!==-1){const y=x.updated[b];console.log("🔄 currentTask:",y),x.updated[b]={...y,...g}}else x.updated.push(g);await o(g.plantilla.id,x)}else e({...i,id:g.plantilla.id,updated:[...i.updated,g]})},removeTaskFromState:async({templateId:g,id:x})=>{const j=await r({templateId:g});if(j){if(x>0){const b=j.deleted.findIndex(y=>y===x);if(b!==-1){j.deleted.splice(b,1),await o(g,j);return}}const w=j.created.findIndex(b=>b.id===x);if(w!==-1){j.created.splice(w,1),await o(g,j);return}}else if(x>0){e({...i,id:g,deleted:[...i.deleted,x]});return}},removeParentIdFromNodes:async({templateId:g,id:x})=>{const j=await r({templateId:g});if(j){const w=j.created.findIndex(y=>y.id===x);if(w!==-1){j.created[w].tarea_padre=null,j.created[w].id_t_requerida=null,await o(g,j);return}const b=j.updated.findIndex(y=>y.id===x);if(b!==-1){j.updated[b].tarea_padre=null,j.updated[b].id_t_requerida=null,await o(g,j);return}}},updateNodeWithNewEdge:async({templateId:g,edge:x,task:j})=>{console.log("🔵 updateNodeWithNewEdge - Inicio",{templateId:g,taskId:j.id,taskData:j});const w=await r({templateId:g});if(console.log("🔵 updateNodeWithNewEdge - Estado actual:",w),w){console.log("🔵 updateNodeWithNewEdge - Estado existe, buscando tarea...");const b=w.created.findIndex(v=>v.id===j.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en created:",b),b!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en created"),w.created[b]=j,await o(g,w),console.log("✅ updateNodeWithNewEdge - Actualizado en created");return}const y=w.updated.findIndex(v=>v.id===j.id);if(console.log("🔵 updateNodeWithNewEdge - Índice en updated:",y),y!==-1){console.log("🔵 updateNodeWithNewEdge - Actualizando en updated"),w.updated[y]=j,await o(g,w),console.log("✅ updateNodeWithNewEdge - Actualizado en updated");return}if(console.log("🔵 updateNodeWithNewEdge - Tarea no encontrada en arrays"),j.id&&j.id!==0){const v=j.id<0;v?(console.log("🔵 updateNodeWithNewEdge - Agregando a created (tarea nueva)"),w.created.push(j)):(console.log("🔵 updateNodeWithNewEdge - Agregando a updated (tarea existente)"),w.updated.push(j)),await o(g,w),console.log("✅ updateNodeWithNewEdge - Tarea agregada exitosamente a",v?"created":"updated")}else console.error("❌ updateNodeWithNewEdge - task.id no válido para agregar:",j.id)}else if(console.log("🔵 updateNodeWithNewEdge - Creando nuevo estado"),j.id&&j.id!==0){const b=j.id<0,y={...i,id:g,created:b?[j]:[],updated:b?[]:[j]};console.log("🔵 updateNodeWithNewEdge - Nuevo estado:",y,b?"(created)":"(updated)"),e(y),console.log("✅ updateNodeWithNewEdge - Estado creado exitosamente")}else console.error("❌ updateNodeWithNewEdge - task.id no válido:",j.id);console.log("🔵 updateNodeWithNewEdge - Fin")}}};function $e(){const{activeTemplate:e,setActiveTemplate:t}=qe(),{mode:n,setMode:o,setViewMode:s,clearViewMode:i}=_e(),{template:r,setIsOpenModalLimit:l,setOpenModalUnsavedChanges:d,setOpenModalPublishTemplate:c,setOpenModalDeleteTemplate:m}=Le(),{hydrateTasks:f}=_s(),{addTaskToState:h,removeTemplateStates:g}=ct(),x=le.useQueryClient(),{data:j,add:w,update:b,get:y,getAll:v,delete:S,isLoading:O,error:L}=Yt(),{get:E}=Ts(),{getTemplateWithTasks:I}=js(),{tasks_api:N}=fe(),[X,H]=u.useState(!1),[z,F]=u.useState(!1),[G,D]=u.useState(!1),$=u.useMemo(()=>j.sort((C,q)=>C.order-q.order),[j]);u.useEffect(()=>{$.length===0&&n!=="grid"&&o("grid")},[$,n,o]);const B=async(_,C=Te.IDLE)=>{var q;try{const M=await I(_.id),T=await f(M),Q={id:crypto.randomUUID(),data:M,type:"start",dragging:!1,measured:{width:171,height:48},position:{x:91,y:-24.5},selected:!1,deletable:!1},Z=T||[Q],te={...M,graph_layout:{...M==null?void 0:M.graph_layout,snapshot:{...(q=M==null?void 0:M.graph_layout)==null?void 0:q.snapshot,nodes:Z}},estatus:C,estatusFromStrapi:M.estatus};await w(te)}catch(M){console.warn("No se pudieron obtener los datos completos de la plantilla, creando versión básica:",M);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}},te={...T,graph_layout:T.graph_layout||Z,estatus:C,tarea_plantillas:T.tarea_plantillas||[]};await w(te)}},U=async({template:_,checkTemplateInIndexedDB:C=!1,statusTemplate:q=Te.IDLE})=>{const M=$;if(!M.find(Q=>Q.id===_.id)){if(M.length===5){l(!0);return}if(C&&await y(_.id))return;await B({..._,order:M.length+1},q)}await R(_.id),await V(_),o("create-edit",_==null?void 0:_.id)},V=async _=>{const C=await y(_.id);t(C)},R=async _=>{try{const C=await v();C.sort((M,T)=>(M.order||0)-(T.order||0));const q=C.findIndex(M=>M.id===_);if(q!==-1){const[M]=C.splice(q,1);C.unshift(M),C.forEach((Q,Z)=>{Q.order=Z+1});const T=C.map(Q=>b(Q.id,Q));await Promise.all(T)}else return}catch{}},ae=async _=>{try{await S(_),i(_);const C=await v();C.forEach((M,T)=>{M.order=T+1});const q=C.map(M=>b(M.id,M));await Promise.all(q)}catch{}};return{screens:$,isLoading:O,error:L,add:w,data:j,addScreen:B,openTemplate:U,update:b,delete:ae,get:y,activeTemplate:e,activateTemplate:V,reorderingTemplates:R,replaceTemplate:async()=>{try{const _=[...$],C={..._[_.length-1]};await S(C.id);const q={...r,order:C.order};await B(q);const T=(await v()).sort((Z,te)=>Z.order-te.order);if(T.some((Z,te)=>(Z.order||0)!==te+1)){const Z=T.map((te,re)=>({...te,order:re+1}));for(const te of Z)try{await b(te.id,te)}catch{}}}catch{}finally{l(!1)}},addTaskUpdatingTemplate:async(_,C,q="hija")=>{var Z,te,re,J;const M=await y(C);if(!M)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,type:"task",equipo:{id:Number(_.team)||null},responsable:{id:Number(_.responsible)||null},plantilla:{id:M.id,clave:M.clave,categoria:M.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:q==="dependiente"?(te=(Z=_.parent)==null?void 0:Z.data)==null?void 0:te.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={...M,estatus:Te.DIRTY};return await b(C,Q),e&&e.id===C&&t(Q),await h({task:T}),T},addTemplateUpdatingTemplate:async(_,C,q,M="hija")=>{let T=null;if(e&&e.id===C?T=e:T=await y(C),!T)return null;const Q=(te,re,J,se)=>{for(let ce=0;ce<te.length;ce++){const me=te[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,_,M)){const te={...T,estatus:Te.DIRTY,updatedAt:new Date().toISOString()};return await b(C,te),e&&e.id===C&&t(te),!0}else return!1},updateGraphLayout:async(_,C)=>{var q;if(!_){console.warn("⚠️ updateGraphLayout - Template ID no válido");return}try{const M=await y(_);if(!M){console.warn("⚠️ updateGraphLayout - Template no encontrado");return}const T=(C.nodes||[]).filter(se=>{var ce;return!((ce=se.data)!=null&&ce.isInternal)&&!se.parentId}).map(se=>{const{style:ce,measured:me,data:ie,...ye}=se,{expandedDimensions:pe,isExpanded:be,needsReExpansion:Ee,...we}=ie||{},Ue=ce?{...ce,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...ye,style:Ue,data:we,position:se.position}}),Q=(C.edges||[]).filter(se=>{var ce;return!((ce=se.data)!=null&&ce.isInternal)}).map(se=>{var ce;if((ce=se.data)!=null&&ce.redirectedToInternal){const{redirectedToInternal:me,originalTarget:ie,...ye}=se.data;return{...se,target:ie||se.target,data:ye}}return se}),Z={...C,nodes:T,edges:Q},te=(q=M.graph_layout)==null?void 0:q.snapshot;if(!(!te||JSON.stringify(te)!==JSON.stringify(Z)))return;const J={...M,graph_layout:{...M.graph_layout,snapshot:Z},estatus:Te.DIRTY,updatedAt:new Date().toISOString()};await b(_,J),e&&e.id===_&&t(J)}catch(M){console.error("❌ updateGraphLayout - Error:",M)}},saveTemplateChanges:async(_=!0)=>{try{if(e.estatus===Te.DIRTY){F(!0);const{id:C}=e,q=await y(C),M=await E(C),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 ${C}`);const te={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:(M==null?void 0:M.created)||[],updated:(M==null?void 0:M.updated)||[],deleted:(M==null?void 0:M.deleted)||[]}},re=await N.post("/api/tareas/save-tareas-grafico",{data:te});if(re.data&&re.status===200){try{const J=await I(C),se=await f(J),ce={...J,graph_layout:{...J.graph_layout,snapshot:{...J.graph_layout.snapshot,nodes:se}},estatus:Te.IDLE};await b(C,ce),_||t(ce)}catch{const se=await y(C);if(se&&!_){const ce={...se,estatus:Te.IDLE};await b(C,ce),t(ce)}}await x.invalidateQueries({queryKey:["template",C]}),await x.invalidateQueries({queryKey:["template"]}),g(C),_&&(ae(C),d(!1)),s(C,"readonly")}}}catch(C){console.log(C)}finally{F(!1)}},publishTemplate:async _=>{try{H(!0);const C={estatus:Pe.PUBLISHED,publication_date:new Date},q=await N.put(`/api/plantillas/plantilla-update-estatus/${_}`,{data:C});q.data&&q.status===200&&(t({...e,estatusFromStrapi:Pe.PUBLISHED}),c(!1),p.toast.info("Se publicó correctamente el proceso"))}catch(C){console.log(C),p.toast.error("Surgió un error al publicar el proceso")}finally{H(!1)}},deleteTemplate:async _=>{try{D(!0);const C={estatus:Pe.DELETED,sjdaksd:0},q=await N.put(`/api/plantillas/plantilla-update-estatus/${_}`,{data:C});q.data&&q.status===200&&(m(!1),p.toast.info("Se eliminó correctamente el proceso"))}catch(C){console.error(C),p.toast.error("Surgión un error al eliminar el proceso")}finally{D(!1)}},loadingPublishTemplate:X,loadingSaveChanges:z,loadingDeleteTemplate:G}}const Br=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}`}},Rr=()=>{const{tasks_api:e}=fe();return{users:le.useQuery({queryKey:["usersOBP"],queryFn:()=>Br({tasks_api:e}),staleTime:1e3*60*60*24})}},nt=()=>{const{users:e}=Rr(),t=le.useQuery({queryKey:["users_index",e.data],queryFn:()=>Ao({users:e.data||[]}),staleTime:1e3*60*60*24,enabled:!!e.data});return{users:t.data,isLoading:t.isLoading||e.isLoading}},Jt=()=>{const{users:e,isLoading:t}=nt(),{getImageOBP:n}=fe();return{getImageByEmail:i=>{const r=e==null?void 0:e[i];return n(r==null?void 0:r.image)},getNameByEmail:i=>{const r=e==null?void 0:e[i];return(r==null?void 0:r.nombre)||""},isLoading: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,Sa=({template:e,openModalPublishTemplate:t,onHadleClickEditTemplateParams:n,onEditTasks:o,canDuplicateAndDeleteTemplates:s,onHandleClickDuplicateTemplate:i,openModalDeleteTemplate:r})=>a.jsx(p.Popup,{color:"secondary",pill:"pill",icon:de.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:de.faArrowUp,onClick:t,children:"Publicar"}),a.jsx(p.ListItem,{icon:de.faEdit,onClick:()=>{n(e)},children:"Editar parámetros"}),a.jsx(p.ListItem,{icon:de.faEdit,onClick:()=>{o&&o(e)},children:"Editar tareas"}),s&&a.jsx(p.ListItem,{icon:de.faClone,onClick:l=>{l.stopPropagation(),i(e)},children:"Duplicar"}),s&&a.jsx(p.ListItem,{color:"red",icon:de.faTrash,onClick:r,children:"Eliminar"})]})}),Ns=({fullWidth:e,mode:t="grid",onClick:n,active:o,template:s,withOptions:i=!0})=>{const{openTemplate:r}=$e(),{getImageByEmail:l,getNameByEmail:d}=Jt(),{setIsEditTemplate:c,setOpenModalCreateTemplate:m,setCurrentTemplateForEdit:f,setIsDuplicateTemplate:h,setOpenModalPublishTemplate:g,setCurrentTemplateId:x,setOpenModalDeleteTemplate:j}=Le(),w={0:{color:"accent",theme:"solid"},1:{color:"accent",theme:"soft"},2:{color:"warning",theme:"solid"},3:{color:"info",theme:"solid"},4:{color:"gray",theme:"solid"},5:{color:"warning",theme:"soft"},6:{color:"danger",theme:"solid"},7:{color:"info",theme:"soft"},8:{color:"success",theme:"solid"},9:{color:"danger",theme:"solid"}},[b,y]=u.useState(!1),v=async()=>{if(y(!0),t==="grid")try{y(!0),await r({template:s,checkTemplateInIndexedDB:!0})}catch(U){console.error(U)}finally{y(!1)}else y(!1);n==null||n(s==null?void 0:s.id)},S=async()=>{if(!(t!=="grid"||!s)){y(!0);try{await r({template:s,checkTemplateInIndexedDB:!0}),n==null||n(s==null?void 0:s.id)}catch(U){console.error(U)}finally{y(!1)}}},O=U=>{c(!0),m(!0),f(U)},L=U=>{h(!0),m(!0),f(U)},E=()=>{x(s==null?void 0:s.id),g(!0)},I=()=>{x(s==null?void 0:s.id),j(!0)},N=(s==null?void 0:s.dias_duracion)===1?"Día":"Días",X=(s==null?void 0:s.counts_tasks)===1?"Tarea":"Tareas",H=(s==null?void 0:s.estatus)===Pe.PUBLISHED?Pt(s==null?void 0:s.publication_date).format("DD/MM/YYYY"):Pt(s==null?void 0:s.createdAt).format("DD/MM/YYYY"),z=(s==null?void 0:s.updated_by)||(s==null?void 0:s.created_by),F=l(z==null?void 0:z.email),G=d(z==null?void 0:z.email)||"",D=(s==null?void 0:s.estatus)===Pe.PUBLISHED?"Fecha de publicación":"Fecha de creación",$=(s==null?void 0:s.estatus)===Pe.DRAFT,B=U=>{const V=U.split("-");return a.jsx(a.Fragment,{children:V.map((R,ae)=>a.jsxs("span",{children:[R,ae<V.length-1&&a.jsx("span",{className:"tm-text-neutral-200",children:"-"})]},ae))})};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: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:B((s==null?void 0:s.clave)||(s==null?void 0:s.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:(s==null?void 0:s.estatus)===Pe.PUBLISHED?"success":"gray",label:(s==null?void 0:s.estatus)===Pe.PUBLISHED?"Publicado":"Borrador"}),!(typeof H=="string"&&H==="Invalid date")&&a.jsx(p.Tooltip,{label:D,children:a.jsx(p.Text,{size:"sm",weight:"medium",color:"tertiary",children:H})})]})]})]}),!e&&a.jsx(Sa,{template:s,openModalPublishTemplate:E,onHadleClickEditTemplateParams:O,onEditTasks:S,canDuplicateAndDeleteTemplates:$,onHandleClickDuplicateTemplate:L,openModalDeleteTemplate:I})]})})}),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:s==null?void 0:s.params_plantillas.map(U=>{const V=w[U.params_tipo.order-1];return a.jsx(p.Badge,{color:V.color,theme:V.theme,label:U.name,size:"sm"},U.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:(s==null?void 0:s.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:(s==null?void 0:s.dias_duracion)||0}),a.jsx(p.Text,{size:"xs",weight:"regular",color:"tertiary",children:N})]})})}),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:G,children:a.jsx(p.Avatar,{src:F,size:"xxs",type:"people"})})]})]}),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(Sa,{template:s,openModalPublishTemplate:E,onHadleClickEditTemplateParams:O,onEditTasks:S,canDuplicateAndDeleteTemplates:$,onHandleClickDuplicateTemplate:L,openModalDeleteTemplate:I})})]})]})},Cs=(e=7)=>{const t=(o,s)=>o>=s?{populate:"*"}:{miembro_padre:{fields:["id"]},idUser:{populate:"*"},miembros:{populate:t(o+1,s),filters:{idUser:{blocked:!1}}}};return{miembros:{populate:t(0,e),filters:{idUser:{blocked:!1}}}}},zr=e=>{const t=new Set,n=[],o=s=>{var i;if(Array.isArray(s))for(const r of s){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),n.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),n},qr=async(e,t)=>{var l;const n=De.stringify({fields:["nombre","id"],populate:Cs(2)},{encodeValuesOnly:!0}),o=await e.get(`/api/equipos/${t}?${n}`),s=((l=o.data)==null?void 0:l.data)??o.data,i=je(s),r=zr((i==null?void 0:i.miembros)??[]);return{team:{nombre:(i==null?void 0:i.nombre)??"",miembros:(i==null?void 0:i.miembros)??[]},members:r}},$r=e=>{const{tasks_api:t}=fe(),n=typeof e=="number"&&e>0&&!Number.isNaN(e)?e:null;return le.useQuery({queryKey:["equipo-flow-preview",n],queryFn:()=>qr(t,n),enabled:n!=null,staleTime:300*1e3})},Ur=3,Hr=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},Kr=({equipo:e})=>{var g;const t=Hr(e),n=((g=e==null?void 0:e.nombre)==null?void 0:g.trim())??"",{data:o,isLoading:s,isError:i}=$r(t),{getImageByEmail:r,isLoading:l}=Jt();if(!t)return null;const d=((o==null?void 0:o.team.nombre)??n).trim()||"Equipo",c=(o==null?void 0:o.members)??[],m=d,f=[...c].map(x=>{var j;return{src:r(x.email),name:((j=x.nombre)==null?void 0:j.trim())||x.email}}).sort((x,j)=>+!!j.src-+!!x.src),h=a.jsx("div",{className:"tm-flex tm-items-center tm-justify-center",children:s||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:Ur,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&&!n?"Equipo":m,children:h}),a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Equipo"})]})},Vr={1:"blue",2:"green",3:"red",4:"yellow"},Gr=({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:de.faRhombus,size:"md",color:Vr[e]}),a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Dificultad"})]}),Wr=({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"})]}),Qr={1:"neutral",2:"blue",3:"yellow",4:"red"},Xr=({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:de.faFlag,size:"md",color:Qr[e]}),a.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:"Prioridad"})]});class Yr{static toUsers(t){return{id:t.id,name:t.nombre,image:t.image,email:t.email}}}const Jr=async({tasks_api:e})=>{try{const t=De.stringify({filters:{blocked:!1}},{encodeValuesOnly:!0}),n=await e.get(`/api/users?${t}`);return je(n.data).map(Yr.toUsers).sort((s,i)=>s.name.localeCompare(i.name))}catch(t){throw console.log("Error al obtener los usuarios comerciales",t),`Error al obtener los usuarios comerciales: ${t}`}},bt=()=>{const{tasks_api:e}=fe(),t=le.useQuery({queryKey:["users-mt"],queryFn:()=>Jr({tasks_api:e}),staleTime:1e3*60*60*24});return{isLoading:t.isLoading,users:t.data}},Zr=(e,t,n)=>{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 s=e==null?void 0:e.id,i=s!==""&&s!=null&&!Number.isNaN(Number(s))?Number(s):NaN;if(!Number.isNaN(i)&&(n!=null&&n.length)){const l=n.find(d=>d.id===i);if(l!=null&&l.name)return l.name}return""},ei=({responsible:e})=>{const{isLoading:t,users:n}=bt(),{getImageByEmail:o,getNameByEmail:s,isLoading:i}=Jt();if(t||i)return null;const r=Zr(e,s,n),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"})]})},ti=[{label:"Muy alta",value:4,icon:de.faFlag,iconColor:"red"},{label:"Alta",value:3,icon:de.faFlag,iconColor:"yellow"},{label:"Media",value:2,icon:de.faFlag,iconColor:"blue"},{label:"Baja",value:1,icon:de.faFlag,iconColor:"neutral"}],ai=[{label:"Muy alta",value:4,icon:de.faRhombus,iconColor:"red"},{label:"Alta",value:3,icon:de.faRhombus,iconColor:"yellow"},{label:"Media",value:2,icon:de.faRhombus,iconColor:"blue"},{label:"Baja",value:1,icon:de.faRhombus,iconColor:"neutral"}],si=[{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}],Ss=({isOpen:e,onClose:t,onSuccess:n,nodeDataType:o,parentNodeInfo:s,editMode:i=!1,taskToEdit:r})=>{const{data:l}=za(),{users:d}=bt(),{users:c}=nt(),{getImageOBP:m}=fe(),f=u.useMemo(()=>{try{return!d||!c?[]:d.map(E=>{const I=c[E.email],N=I!=null&&I.image?m(I.image):"";return{label:E.name,value:E.id.toString(),icon:N}})}catch(E){return console.error("Error mapeando usuarios:",E),[]}},[d,c]),h=()=>{if(i&&r){const E=H=>{if(H==null)return"";const z=Number(H);return isNaN(z)?"":z},I=H=>H?typeof H=="string"?Number(H)||"":H.id||"":"",N=H=>{var z;return H?typeof H=="string"?H:((z=H.id)==null?void 0:z.toString())||H.name||H.nombre||"":""};return{title:r.texto_corto||"",description:r.texto_largo||"",priority:E(r.prioridad),difficulty:E(r.nivel_dificultad),duration:E(r.duracion),team:I(r.equipo),responsible:N(r.responsable),type:"tarea"}}return{title:"",description:"",priority:"",difficulty:"",duration:"",team:"",responsible:"",type:"tarea"}},{control:g,handleSubmit:x,formState:{errors:j,isValid:w},reset:b,watch:y}=Ae.useForm({mode:"onChange",defaultValues:h()});u.useEffect(()=>{e&&b(h())},[e,i,r,b]);const v=y(),S=w&&v.title&&v.description&&v.priority&&v.difficulty&&v.duration&&v.team&&Object.keys(j).length===0,O=async E=>{try{if(["title","description","priority","difficulty","duration","team"].filter(X=>!E[X]).length>0)return;n&&await n({...E,parent:s}),i||b()}catch{}},L=()=>{b(),t()};return a.jsx(p.Drawer,{titleIcon:de.faPencil,isOpen:e,onClose:L,onSuccess:()=>{x(E=>{O(E)},E=>{const I=Object.entries(E).map(([N,X])=>`${N}: ${X.message}`).join(`
9
9
  `);console.log(`📝 Por favor, completa los siguientes campos:
10
- `+A)})()},title:i?"Editar tarea":"Nueva tarea",successButtonText:i?"Actualizar":"Crear",disabledSuccessButton:!O,children:t.jsxs("form",{className:"tm-flex tm-flex-col tm-gap-4",children:[t.jsx(Pe.Controller,{control:p,name:"title",rules:{required:"El título es obligatorio",minLength:{value:3,message:"El título debe tener al menos 3 caracteres"}},render:({field:N})=>{var A;return t.jsx(f.Input,{fullWidth:!0,label:"Título",placeholder:"Ingresa el título de la tarea...",error:(A=y.title)==null?void 0:A.message,...N})}}),t.jsx(Pe.Controller,{control:p,name:"description",rules:{required:"La descripción es obligatoria",minLength:{value:10,message:"La descripción debe tener al menos 10 caracteres"}},render:({field:N})=>{var A;return t.jsx(f.Textarea,{className:"ui-w-full tw-w-full",placeholder:"Describe la tarea a realizar...",label:"Descripción",error:(A=y.description)==null?void 0:A.message,...N})}}),t.jsx(f.Separator,{}),t.jsx(Pe.Controller,{control:p,name:"priority",rules:{required:"La prioridad es obligatoria"},render:({field:N,fieldState:{error:A}})=>t.jsx(f.Dropdown,{fullWidth:!0,label:"Prioridad",placeholder:"Selecciona la prioridad...",options:Or,error:A==null?void 0:A.message,value:N.value,onValueChange:T=>{N.onChange(T)}})}),t.jsx(Pe.Controller,{control:p,name:"difficulty",rules:{required:"La dificultad es obligatoria"},render:({field:N,fieldState:{error:A}})=>t.jsx(f.Dropdown,{fullWidth:!0,label:"Dificultad",placeholder:"Selecciona la dificultad...",options:Lr,error:A==null?void 0:A.message,value:N.value,onValueChange:T=>{N.onChange(T)}})}),t.jsx(Pe.Controller,{control:p,name:"duration",rules:{required:"La duración es obligatoria"},render:({field:N,fieldState:{error:A}})=>t.jsx(f.Dropdown,{fullWidth:!0,label:"Duración",placeholder:"Selecciona la duración...",options:Br,error:A==null?void 0:A.message,value:N.value,onValueChange:T=>{N.onChange(T)}})}),t.jsx(f.Separator,{}),t.jsx(Pe.Controller,{control:p,name:"team",rules:{required:"El equipo es obligatorio"},render:({field:N,fieldState:{error:A}})=>t.jsx(f.Dropdown,{fullWidth:!0,label:"Equipo",placeholder:"Selecciona el equipo...",options:l,error:A==null?void 0:A.message,value:N.value,onValueChange:T=>{N.onChange(T)}})}),t.jsx(Pe.Controller,{control:p,name:"responsible",render:({field:N,fieldState:{error:A}})=>t.jsx(f.Dropdown,{fullWidth:!0,absolute:!0,label:"Responsable",placeholder:"Selecciona el responsable...",options:g,error:A==null?void 0:A.message,value:N.value,onValueChange:T=>{N.onChange(T)}})})]})})},Rr=()=>{const{get:e}=ze(),a=qe(i=>i.activeTemplate),{updateTaskInState:n,addTaskToState:s}=it();return{updateTaskInTemplate:async(i,r)=>{if(!a)return console.error("No hay plantilla activa"),!1;try{const l=await e(a.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,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 n({task:d}):await s({task:d})}catch(l){return console.error("❌ Error al actualizar tarea en plantilla:",l),!1}}}},Te={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"},va={dependiente:{stroke:"#3B82F6",strokeDasharray:"5,5",strokeWidth:2},normal:{stroke:"#6B7280",strokeWidth:2}},Tt=e=>{const a=e.map(n=>({...n}));return a.filter(n=>n.type==="group").forEach(n=>{const s=a.filter(m=>m.parentId===n.id);if(s.length===0)return;const o=Math.min(...s.map(m=>m.position.x)),r=Math.max(...s.map(m=>{var g;return m.position.x+(typeof((g=m.style)==null?void 0:g.width)=="number"?m.style.width:Te.DEFAULT_CHILD_WIDTH)}))-o,l=Math.min(...s.map(m=>m.position.y)),c=Math.max(...s.map(m=>{var g;return m.position.y+(typeof((g=m.style)==null?void 0:g.height)=="number"?m.style.height:Te.DEFAULT_CHILD_HEIGHT)}))-l;n.style={...n.style??{},width:r,height:c}}),a},Nt=e=>e.source===Te.START_NODE_ID||e.target===Te.START_NODE_ID,et=e=>e===Te.START_NODE_ID,qr=e=>e==="dependiente"?va.dependiente:va.normal,zr=(e,a,n)=>({id:e,type:"main",position:a,selected:!1,deletable:!0,data:n}),Ct=(e,a,n,s,o,i=!1,r=null,l=null)=>{const d=qr(s),c=i?Te.DEFAULT_SOURCE_HANDLE:n;return{id:`edge-${e}-${a}`,source:e,sourceHandle:c,target:a,targetHandle:Te.DEFAULT_TARGET_HANDLE,type:"smoothstep",deletable:!0,style:d,markerEnd:{type:"arrowclosed",width:12,height:12,color:d.stroke,strokeWidth:1},data:{connectionType:s,nodeType:o,isFromStartNode:i,parentId:r,childId:l}}},$r=(e,a)=>!(!e||!a||e===a),Ur=e=>{const{clientX:a,clientY:n}="changedTouches"in e?e.changedTouches[0]:e;return{x:a,y:n}},Hr=e=>e.filter(a=>a.type==="position"&&a.dragging===!1),bs=e=>e.map(a=>a.id),ys=({nodes:e,edges:a,setNodes:n,setEdges:s,newNodePopup:o,connectionPopup:i,closeNewNodePopup:r,closeConnectionPopup:l,setIsConnectingExistingNodes:d})=>{const{screenToFlowPosition:c,getNode:m,setViewport:g,fitView:x}=oe.useReactFlow(),{get:p,update:h,addTaskUpdatingTemplate:y,addTemplateUpdatingTemplate:w}=ze(),j=qe(I=>I.activeTemplate),b=le.useQueryClient(),v=qe(I=>I.setActiveTemplate),{removeTaskFromState:O,updateNodeWithNewEdge:H,updateTaskInState:M}=it(),N=u.useCallback(async I=>{const V=e.find(q=>q.id===I);if(!(V!=null&&V.data))return null;if(V.id===Te.START_NODE_ID){if(!j)return null;try{const q=await p(j.id),B=q.tarea_plantillas.find($=>$.start===!0);return B!=null&&B.id?B.id:q.tarea_plantillas.length>0?q.tarea_plantillas[0].id:null}catch{return null}}const D=V.data.id;if(!D&&D!==0)return null;if(typeof D=="string"){if(D.includes("-"))return D;{const q=parseInt(D,10);return isNaN(q)?null:q}}else if(typeof D=="number")return D;return null},[e,j,p]),A=u.useCallback(async(I=e,V=a)=>{var D,q,B,$,Y,z,re;if(!j){f.toast.warning("No hay template activo para actualizar layout");return}try{const ee=await p(j.id);if(!ee){f.toast.warning("Template no encontrado en IndexedDB");return}const S=(D=ee.graph_layout)==null?void 0:D.snapshot;if(!(!S||JSON.stringify(S.nodes)!==JSON.stringify(I)||JSON.stringify(S.edges)!==JSON.stringify(V))){console.log("🔄 No hay cambios en el layout, omitiendo actualización");return}const G=I.filter(W=>{var E;return!((E=W.data)!=null&&E.isInternal)&&!W.parentId}).map(W=>{const{style:E,measured:C,data:R,selected:F,..._}=W,{expandedDimensions:Q,isExpanded:Z,needsReExpansion:ae,...ie}=R||{},J=E?{...E,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{..._,style:J,data:ie}}),k=V.filter(W=>{var E;return!((E=W.data)!=null&&E.isInternal)}),P={...ee,graph_layout:{id:((q=ee.graph_layout)==null?void 0:q.id)||0,snapshot:{nodes:G,edges:k,viewport:(($=(B=ee.graph_layout)==null?void 0:B.snapshot)==null?void 0:$.viewport)||{x:0,y:0,zoom:1}},history:((Y=ee.graph_layout)==null?void 0:Y.history)||[],zoom:((z=ee.graph_layout)==null?void 0:z.zoom)||1,position:((re=ee.graph_layout)==null?void 0:re.position)||{x:0,y:0}},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await h(j.id,P),console.log("🗑️ [useFlowActions] Invalidando caché de la plantilla:",j.id),await b.invalidateQueries({queryKey:["template",j.id]}),await b.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlowActions] Caché invalidado exitosamente"),v(P)}catch(ee){console.error("❌ Error al actualizar template layout:",ee)}},[j,p,h,e,a,v]),T=u.useCallback(async(I=[],V=[],D,q)=>{var $,Y,z,re,ee,S,K,G,k,P,W,E;const B=D||(j==null?void 0:j.id);if(!B){f.toast.warning("No hay template ID disponible para actualizar");return}try{const C=await p(B);if(!C)return;const R=(z=(Y=($=C.graph_layout)==null?void 0:$.snapshot)==null?void 0:Y.nodes)==null?void 0:z.filter(Q=>{var Z;return!I.includes(Q.id)&&!((Z=Q.data)!=null&&Z.isInternal)&&!Q.parentId}).map(Q=>{const{style:Z,measured:ae,data:ie,...J}=Q,{expandedDimensions:se,...te}=ie||{},fe=Z?{...Z,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...J,style:fe,data:te}}),F=((S=(ee=(re=C.graph_layout)==null?void 0:re.snapshot)==null?void 0:ee.edges)==null?void 0:S.filter(Q=>{var Z;return!I.includes(Q.source)&&!I.includes(Q.target)&&!((Z=Q.data)!=null&&Z.isInternal)}))||[],_={...C,graph_layout:{id:((K=C.graph_layout)==null?void 0:K.id)||0,snapshot:{nodes:R,edges:F,viewport:((k=(G=C.graph_layout)==null?void 0:G.snapshot)==null?void 0:k.viewport)||{x:0,y:0,zoom:1}},history:((P=C.graph_layout)==null?void 0:P.history)||[],zoom:((W=C.graph_layout)==null?void 0:W.zoom)||1,position:((E=C.graph_layout)==null?void 0:E.position)||{x:0,y:0}},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await O({templateId:B,id:q||0}),await h(B,_),await b.invalidateQueries({queryKey:["template",B]}),await b.invalidateQueries({queryKey:["template"]}),B===(j==null?void 0:j.id)&&v(_)}catch(C){console.error("❌ updateAfterDeleted - Error al actualizar template layout:",C)}},[j,p,h,a,e,O,v]),X=u.useCallback(async(I,V,D)=>{if(!o||!j)return;const{nodeId:q,sourceNodeId:B,sourceHandleId:$}=o;if(B)try{const Y=await N(B);if(!Y)return;if(I==="plantilla"){const z=D;if(!(z!=null&&z.templateId))return;if(!await w(z.templateId,j.id,Y,V)){f.toast.error("No se pudo agregar la plantilla. Intenta nuevamente."),r();return}try{const W=await p(j.id);if(W){const E=(R,F)=>{for(const _ of R){if(_.id===F||_.uuid===F)return _;if(_.tareas&&_.tareas.length>0){const Q=E(_.tareas,F);if(Q)return Q}}return null},C=E(W.tarea_plantillas,Y);if(C&&C.id){const R=(C.plantilla_dependents||[]).map(_=>typeof _=="object"&&_.id?{id:_.id}:typeof _=="number"?{id:_}:_),F={...C,plantilla_dependents:R,plantilla:{id:j.id,clave:W.clave,categoria:W.categoria||{id:0,nombre:"Sin categoría"}}};await M({task:F}),console.log("✅ Tarea padre agregada a templates_states.updated con plantilla_dependents:",C.id,F.plantilla_dependents)}}}catch(W){console.error("❌ Error al actualizar tarea padre en templates_states:",W)}const ee=c({x:o.position.x,y:o.position.y}),S=z.templateData||{id:z.templateId,nombre_plantilla:`Flujo de trabajo ${z.templateId}`,clave:`TPL-${z.templateId}`,estatus:"activo",categoria:null,counts_tasks:0,dias_duracion:0},K={id:q,type:"group",position:ee,selected:!1,deletable:!0,data:{id:z.templateId,templateId:z.templateId,type:"template",nombre_plantilla:S.nombre_plantilla||`Flujo de trabajo ${z.templateId}`,clave:S.clave||`TPL-${z.templateId}`,estatus:S.estatus||"activo",categoria:S.categoria||null,counts_tasks:S.counts_tasks||0,dias_duracion:S.dias_duracion||0,tarea_plantillas:S.tarea_plantillas||[],params_plantillas:S.params_plantillas||[],createdAt:S.createdAt||new Date().toISOString(),updatedAt:S.updatedAt||new Date().toISOString(),created_by:S.created_by||null,updated_by:S.updated_by||null}};n(W=>[...W,K]);const G=$||Te.DEFAULT_SOURCE_HANDLE,k=et(B),P=Ct(B,q,G,V,"plantilla",k,Y);s(W=>[...W,P]);try{const W=[...e,K],E=[...a,P];await A(W,E)}catch(W){console.error("❌ Error al actualizar layout después de agregar plantilla:",W)}}else if(I==="tarea"){const z=D;if(!z)return;const re=c({x:o.position.x,y:o.position.y}),ee=-new Date().getTime(),S={id:ee,reference_graph:q,title:z.title,description:z.description,priority:z.priority,difficulty:z.difficulty,duration:z.duration,team:z.team,responsible:z.responsible,parent:{data:{id:Y}}},K=await y(S,j.id,V),G=zr(q,re,K);n(E=>[...E,G]);const k=$||Te.DEFAULT_SOURCE_HANDLE,P=et(B),W=Ct(B,q,k,V,I,P,Y,ee);s(E=>[...E,W]);try{const E=[...e,G],C=[...a,W];await A(E,C)}catch(E){console.error("❌ Error al actualizar layout después de agregar tarea:",E)}setTimeout(()=>{try{const E=m(q);if(E){const C=window.innerWidth,R=window.innerHeight,F=C/2,_=R/2;g({x:F-E.position.x-130,y:_-E.position.y-40,zoom:1},{duration:800})}else x({padding:.1,duration:800})}catch{try{x({padding:.1,duration:800})}catch{}}},200)}r()}catch(Y){console.error("❌ Error en createNodeFromPopup:",Y)}},[o,j,y,w,N,c,n,s,r,A,e,a]),U=u.useCallback(async(I,V)=>{var $,Y;if(console.log("🟢 createConnectionFromPopup - INICIO",{nodeType:I,connectionType:V}),!i){console.warn("⚠️ createConnectionFromPopup - No hay connectionPopup");return}const{sourceNodeId:D,sourceHandleId:q,targetNodeId:B}=i;console.log("🟢 createConnectionFromPopup - Datos de conexión:",{sourceNodeId:D,targetNodeId:B,sourceHandleId:q});try{if(!(window.validConnectionTypes||{dependiente:!0,hija:!0})[V]){console.warn("⚠️ createConnectionFromPopup - Tipo de conexión no válido:",V),f.toast.warning("Tipo de conexión no válido"),d(!1),l();return}const re=e.find(F=>F.id===D),ee=e.find(F=>F.id===B);console.log("🟢 createConnectionFromPopup - Nodos encontrados:",{sourceNode:re==null?void 0:re.id,targetNode:ee==null?void 0:ee.id,sourceData:re==null?void 0:re.data,targetData:ee==null?void 0:ee.data});const S=ee==null?void 0:ee.data,K=(($=re==null?void 0:re.data)==null?void 0:$.id)||D,G=((Y=ee==null?void 0:ee.data)==null?void 0:Y.id)||B;console.log("🟢 createConnectionFromPopup - IDs extraídos:",{parentId:K,childId:G});const k=Ct(D,B,q||Te.DEFAULT_SOURCE_HANDLE,V,I,et(D),K,G);console.log("🟢 createConnectionFromPopup - Nuevo edge creado:",k),s(F=>[...F,k]);const P=[...a,k],W=S.id||-Date.now(),E=S.reference_graph||B,C={id:W,uuid:S.uuid||crypto.randomUUID(),reference_graph:E,texto_corto:S.texto_corto||"",texto_largo:S.texto_largo||"",prioridad:S.prioridad||null,nivel_dificultad:S.nivel_dificultad||1,duracion:S.duracion||null,start:S.start||!1,equipo:S.equipo||null,responsable:S.responsable||null,plantilla:{id:S.plantilla.id,clave:S.plantilla.clave,categoria:S.plantilla.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:S.plantilla_dependents||[],ids_t_dependientes:S.ids_t_dependientes||[],tarea_padre:V==="hija"?{id:k.data.parentId}:null,id_t_requerida:V==="dependiente"?{id:k.data.parentId}:null,tareas:S.tareas||[],type:"task"};console.log("🟢 createConnectionFromPopup - taskForState creado:",C),console.log("🟢 createConnectionFromPopup - currentTemplate.id:",j.id);const R=e.map(F=>F.id===B?{...F,data:C}:F);console.log("🟢 createConnectionFromPopup - Actualizando nodos en React Flow..."),n(R),console.log("✅ createConnectionFromPopup - Nodos actualizados en React Flow"),console.log("🟢 createConnectionFromPopup - Actualizando template layout..."),await A(R,P),console.log("✅ createConnectionFromPopup - Template layout actualizado"),console.log("🟢 createConnectionFromPopup - Llamando a updateNodeWithNewEdge..."),await H({templateId:j.id,edge:k,task:C}),console.log("✅ createConnectionFromPopup - updateNodeWithNewEdge completado")}catch(z){console.error("❌ createConnectionFromPopup - Error al crear conexión:",z),console.error("❌ createConnectionFromPopup - Stack:",z.stack)}finally{console.log("🟢 createConnectionFromPopup - Limpiando estado..."),d(!1),l(),console.log("🟢 createConnectionFromPopup - FIN")}},[i,s,d,l,a,e,A]),L=u.useCallback(async I=>{if(!o||!j){f.toast.warning("No hay newNodePopup o template activo para actualizar el nodo");return}const{nodeId:V}=o;if(!V){f.toast.warning("No se encontró nodeId en newNodePopup");return}try{const D=e.find(B=>B.id===V);if(!D){f.toast.warning(`No se encontró el nodo con ID: ${V}`);return}const q={...D,data:{...D.data,...I,id:D.data.id||D.id,type:D.data.type||D.data.type,updatedAt:new Date().toISOString()}};n(B=>B.map($=>$.id===V?q:$));try{const B=e.map($=>$.id===V?q:$);await A(B,a)}catch(B){f.toast.error("Error al actualizar layout después de actualizar nodo:",B)}r()}catch(D){f.toast.error("Error al actualizar el nodo:",D)}},[o,j,e,n,a,A,r]);return{createNodeFromPopup:X,createConnectionFromPopup:U,updateNodeFromPopup:L,updateAfterDeleted:T}},Kr=({data:e,id:a,isConnectable:n,selected:s})=>{const o=ve(U=>U.getViewMode),[i,r]=u.useState(!1),[l,d]=u.useState(e),c=qe(U=>U.activeTemplate),m=qe(U=>U.setActiveTemplate),{get:g,update:x}=ze(),{data:p}=Ma(),{users:h}=ht(),y=c!=null&&c.id?o(c.id):"readonly",{updateTaskInTemplate:w}=Rr(),{setNodes:j,setEdges:b,getNodes:v,getEdges:O}=oe.useReactFlow(),H=le.useQueryClient(),{updateAfterDeleted:M}=ys({nodes:v(),edges:O(),setNodes:j,setEdges:b,newNodePopup:null,connectionPopup:null,closeNewNodePopup:()=>{},closeConnectionPopup:()=>{},setIsConnectingExistingNodes:()=>{}}),N=()=>{r(!0)},A=u.useCallback(async()=>{var q,B,$;const U=v().find(Y=>Y.id===a);if(!U){console.warn("⚠️ Nodo no encontrado para eliminar");return}const L=[U],I=bs(L),V=L.length>0?(B=(q=L[0])==null?void 0:q.data)==null?void 0:B.id:0;b(Y=>Y.filter(z=>!I.includes(z.source)&&!I.includes(z.target))),j(Y=>Y.filter(z=>z.id!==a));let D;for(const Y of L)try{const z=Y.data;if(($=z==null?void 0:z.plantilla)!=null&&$.id){D=z.plantilla.id;break}}catch{}try{b(Y=>((async()=>{await M(I,Y,D,V)})().catch(z=>{console.error("❌ Error en updateAfterDeleted:",z)}),Y))}catch(Y){console.error("❌ Error en handleDeleteNode:",Y)}},[a,v,O,j,b,M]),T=u.useCallback(async U=>{var L,I,V,D,q,B,$,Y,z,re;if(!c){console.warn("⚠️ MainNode.updateTemplateLayout - No hay template activo");return}try{const ee=await g(c.id);if(!ee){console.warn("⚠️ MainNode.updateTemplateLayout - Template no encontrado en IndexedDB");return}const S=(L=ee.graph_layout)==null?void 0:L.snapshot;if(!(!S||JSON.stringify(S.nodes)!==JSON.stringify(U))){console.log("🔄 MainNode.updateTemplateLayout - No hay cambios en nodos, omitiendo actualización");return}const G=U.filter(W=>{var E;return!((E=W.data)!=null&&E.isInternal)&&!W.parentId}).map(W=>{const{style:E,measured:C,data:R,selected:F,..._}=W,{expandedDimensions:Q,isExpanded:Z,needsReExpansion:ae,...ie}=R||{},J=E?{...E,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{..._,style:J,data:ie}}),k=(((V=(I=ee.graph_layout)==null?void 0:I.snapshot)==null?void 0:V.edges)||[]).filter(W=>{var E;return!((E=W.data)!=null&&E.isInternal)}),P={...ee,graph_layout:{id:((D=ee.graph_layout)==null?void 0:D.id)||0,snapshot:{...(q=ee.graph_layout)==null?void 0:q.snapshot,nodes:G,edges:k,viewport:(($=(B=ee.graph_layout)==null?void 0:B.snapshot)==null?void 0:$.viewport)||{x:0,y:0,zoom:1}},history:((Y=ee.graph_layout)==null?void 0:Y.history)||[],zoom:((z=ee.graph_layout)==null?void 0:z.zoom)||1,position:((re=ee.graph_layout)==null?void 0:re.position)||{x:0,y:0}},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await x(c.id,P),await H.invalidateQueries({queryKey:["template",c.id]}),await H.invalidateQueries({queryKey:["template"]}),c&&c.id===P.id&&m(P)}catch(ee){console.error("❌ MainNode.updateTemplateLayout - Error al actualizar template layout:",ee)}},[c,g,x,m,H]),X=async U=>{if(c){const L=U.responsible,I=L!==""&&L!=null&&!Number.isNaN(Number(L))?Number(L):null,V=I!=null?h==null?void 0:h.find($=>$.id===I):void 0,D=e.responsable&&typeof e.responsable=="object"&&"email"in e.responsable&&typeof e.responsable.email=="string"?e.responsable.email:"",q=I!=null?{id:I,email:(V==null?void 0:V.email)??D}:{id:null,email:""},B={...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 z;const $=Number(U.team)||null;if(!$)return{id:null};const Y=(z=p==null?void 0:p.find(re=>re.value===$))==null?void 0:z.label;return{id:$,...Y?{nombre:Y}:{}}})(),responsable:q};await w(e.id,B),j($=>{const Y=$.map(z=>z.id===a?{...z,data:{...z.data,...B,tarea_padre:e.tarea_padre,id_t_requerida:e.id_t_requerida,updatedAt:new Date().toISOString()}}:z);return setTimeout(()=>T(Y),0),Y})}r(!1)};return u.useEffect(()=>{d(e)},[e]),t.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-[423px] ${s?"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:[t.jsx(oe.Handle,{isConnectable:n,id:"top-target",type:"target",position:oe.Position.Top,className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default"}),t.jsx(oe.Handle,{isConnectable:n,id:"right-target",type:"target",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Right}),t.jsx(oe.Handle,{isConnectable:n,id:"bottom-target",type:"target",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Bottom}),t.jsx(oe.Handle,{isConnectable:n,id:"left-target",type:"target",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Left}),t.jsxs("div",{className:"tm-flex tm-h-full tm-flex-col tm-gap-y-8 tm-p-12 ",children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-gap-x-4 ",children:[t.jsx(f.Text,{size:"lg",weight:"semibold",color:"primary",truncateLabel:!0,children:l.texto_corto}),!e.isInternal&&c.estatusFromStrapi!==Ae.PUBLISHED&&y!=="readonly"&&t.jsx("div",{children:e.type==="task"?t.jsx(f.Popup,{position:"right",absolute:!0,size:"xxs",pill:"pill",color:"secondary",icon:de.faEllipsis,containerClassName:"nopan nodrag",buttonClassName:"nopan nodrag",children:t.jsxs(f.List,{className:"tm-p-8 tm-gap-4",children:[t.jsx(f.ListItem,{icon:de.faEdit,onClick:N,children:"Editar"}),t.jsx(f.ListItem,{icon:de.faPlus,color:"red",onClick:A,children:"Eliminar"})]})}):t.jsx(f.Button,{size:"xxs",color:"secondary",pill:"pill",icon:de.faMaximize,className:"nopan"})})]}),t.jsx(f.Text,{size:"xs",weight:"regular",color:"tertiary",children:l.texto_largo}),t.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:[t.jsx(Pr,{duration:l.duracion}),t.jsx(Er,{difficulty:l.nivel_dificultad}),t.jsx(Ir,{priority:l.prioridad}),t.jsx(Cr,{equipo:l.equipo}),t.jsx(kr,{responsible:l.responsable})]})]}),t.jsx(oe.Handle,{isConnectable:n,id:"top-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Top}),t.jsx(oe.Handle,{isConnectable:n,id:"right-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Right}),t.jsx(oe.Handle,{isConnectable:n,id:"bottom-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Bottom}),t.jsx(oe.Handle,{isConnectable:n,id:"left-source",type:"source",className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default",position:oe.Position.Left}),e.type==="task"&&i&&t.jsx(xs,{isOpen:i,onClose:()=>r(!1),onSuccess:X,editMode:!0,taskToEdit:l})]})},Vr=async({tasks_api:e,page:a=1,pageSize:n=10,search:s="",filters:o={}})=>{const i={clave:{$notNull:!0},estatus:{$ne:Ae.DELETED},...s?{$or:[{nombre_plantilla:{$containsi:s}},{clave:{$containsi:s}}]}:{},...Object.keys(o).reduce((d,c)=>(Array.isArray(o[c])?d[c]={id:{$in:o[c]}}:d[c]=o[c],d),{})},r=Ee.stringify({filters:i,fields:["id","clave","estatus","dias_duracion","createdAt","publication_date"],count_tasks:!0,tarea_plantillas:!1,populate:{updated_by:{fields:["id","nombre","username","email"]},created_by:{fields:["id","nombre","username","email"]},params_plantillas:{fields:["id","name"],populate:{params_tipo:{fields:["id","key","label","order"]}}},tarea_plantillas:{fields:["id"],filters:{start:!0},populate:{tareas:{fields:["id"]},ids_t_dependientes:{fields:["id"]}}}},sort:{createdAt:"asc"},pagination:{page:a,pageSize:n}},{encodeValuesOnly:!0}),l=await e.get(`/api/plantillas/all-plantillas?${r}`);return l.data?{data:be(l.data.data),meta:l.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:n,pageCount:0,total:0}}}},js=({page:e=1,pageSize:a=10,search:n="",filters:s={}})=>{const{tasks_api:o}=pe();return le.useQuery({queryKey:["templates",e,a,n,s],queryFn:()=>Vr({tasks_api:o,page:e,pageSize:a,search:n,filters:s}),staleTime:1e3*60*60*24,placeholderData:le.keepPreviousData,select:i=>({data:(i==null?void 0:i.data)||[],meta:i==null?void 0:i.meta})})},ws=({isOpen:e,onClose:a,onSuccess:n,nodeDataType:s,parentNodeInfo:o})=>{var v,O,H,M;const i=ve(N=>N.addNodeWithType),[r,l]=u.useState(0),d=5,[c,m]=u.useState(1),[g,x]=u.useState("");u.useEffect(()=>{e&&(m(1),x(""),l(0))},[e]),u.useEffect(()=>{m(1)},[g]);const{data:p,isLoading:h}=js({page:c,pageSize:d,search:g}),y=N=>{x(N.target.value)},w=()=>{var A;if(r===0)return;const N=(A=p==null?void 0:p.data)==null?void 0:A.find(T=>T.id===r);if(!N){console.error("No se encontró el flujo de trabajo seleccionado en los datos");return}n?n({templateId:r,templateData:N}):i&&i(s.id,s.type,s.connectionType)};if(h)return t.jsx("div",{children:"Cargando..."});if(!(p!=null&&p.data))return t.jsx("div",{children:"No hay datos disponibles"});const j=((O=(v=p.meta)==null?void 0:v.pagination)==null?void 0:O.total)||0,b=j===1?"flujo encontrado":"flujos encontrados";return t.jsx(f.Modal,{iconConfig:{icon:Se.faPencil},isOpen:e,size:"lg",onSuccess:w,onClose:a,title:"Agregar flujo de trabajo",successButtonText:"Agregar",disableSuccessButton:r===0,closeAtSuccess:!0,children:t.jsxs(f.Modal.Body,{withPadding:!1,children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-justify-between tm-gap-6 tm-px-12 tm-py-3",children:[t.jsxs("p",{className:"tm-flex-1 tm-text-[14px] tm-text-neutral-500",children:[j," ",b]}),t.jsx(f.Input,{className:"tm-flex-1",leftSlot:Se.faSearch,fullWidth:!0,placeholder:"Buscar por nombre, parámetros o estado...",value:g,onChange:y})]}),t.jsx(f.Separator,{}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-6 tm-p-12",children:[p.data.map(N=>t.jsx(gs,{mode:"modal",template:N,active:r===N.id,fullWidth:!0,onClick:l,withOptions:!1},N.id)),p.data.length===0&&t.jsx("div",{className:"tm-flex tm-items-center tm-justify-center tm-h-full",children:t.jsx("p",{className:"tm-text-[14px] tm-text-neutral-500",children:"No se encontraron flujos de trabajo con ese criterio de búsqueda"})})]}),t.jsx(f.Separator,{}),t.jsx("div",{className:"tm-mt-6",children:t.jsx(f.Pagination,{className:"tm-pt-0",pageSize:d,pageCount:((M=(H=p==null?void 0:p.meta)==null?void 0:H.pagination)==null?void 0:M.pageCount)||1,currentPage:c,onPageChange:N=>m(N)})})]})})},Gr=({data:e,id:a})=>{const n=ve(m=>m.addNodeWithType),[s,o]=u.useState(!1),[i,r]=u.useState(!1),[l,d]=u.useState({id:a,type:"tarea",connectionType:"dependiente"}),c=({type:m,connectionType:g})=>{n&&(d({id:a,type:m,connectionType:g}),m==="tarea"?o(!0):m==="plantilla"&&r(!0))};return console.log({data:e,id:a}),t.jsxs("div",{className:"tm-flex tm-items-center tm-justify-center",children:[l.type==="plantilla"&&t.jsx(ws,{isOpen:i,onClose:()=>r(!1),nodeDataType:l}),t.jsx(oe.Handle,{id:"top-target",type:"target",position:oe.Position.Top}),t.jsx(oe.Handle,{id:"right-target",type:"target",position:oe.Position.Right}),t.jsx(oe.Handle,{id:"bottom-target",type:"target",position:oe.Position.Bottom}),t.jsx(oe.Handle,{id:"left-target",type:"target",position:oe.Position.Left}),t.jsx(oe.Handle,{id:"top-source",type:"source",position:oe.Position.Top}),t.jsx(oe.Handle,{id:"right-source",type:"source",position:oe.Position.Right}),t.jsx(oe.Handle,{id:"bottom-source",type:"source",position:oe.Position.Bottom}),t.jsx(oe.Handle,{id:"left-source",type:"source",position:oe.Position.Left}),t.jsx(f.Popup,{position:"right",absolute:!0,size:"md",rounded:!0,icon:de.faPlus,containerClassName:"nopan",buttonClassName:"nopan",children:t.jsxs(f.List,{className:"nopan nodrag",children:[t.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Tarea"}),t.jsx(f.ListItem,{icon:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>c({type:"tarea",connectionType:"dependiente"}),children:"Dependiente"}),t.jsx(f.ListItem,{icon:de.faArrowDownRight,iconColor:"neutral",onClick:()=>c({type:"tarea",connectionType:"hija"}),children:"Hija"}),t.jsx(f.ListSeparator,{}),t.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Flujo de trabajo"}),t.jsx(f.ListItem,{icon:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>c({type:"plantilla",connectionType:"dependiente"}),children:"Dependiente"}),t.jsx(f.ListItem,{icon:de.faArrowDownRight,iconColor:"neutral",onClick:()=>c({type:"plantilla",connectionType:"hija"}),children:"Hija"})]})})]})},Wr=({isOpen:e,position:a,onClose:n,createNodeFromPopup:s,parentNodeInfo:o})=>{const[i,r]=u.useState(!1),[l,d]=u.useState(!1),[c,m]=u.useState(null);if(!e)return null;const g=(w,j)=>{m({type:w,connectionType:j}),w==="tarea"?r(!0):w==="plantilla"&&d(!0)},x=()=>{r(!1),m(null),n()},p=()=>{d(!1),m(null),n()},h=w=>{c&&s(c.type,c.connectionType,w),x()},y=w=>{c&&w&&s(c.type,c.connectionType,w),p()};return t.jsxs(t.Fragment,{children:[!i&&!l&&t.jsx("div",{className:"tm-fixed tm-inset-0 tm-z-50",onClick:n}),!i&&!l&&t.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:a.x+50,top:a.y-100},children:t.jsx("div",{className:"tm-p-2",children:t.jsxs(f.List,{children:[t.jsx("p",{className:"tm-text-sm tm-p-4 tm-gap-4 tm-font-medium tm-text-neutral-300",children:"Tarea"}),t.jsx(f.ListItem,{icon:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>g("tarea","dependiente"),children:"Dependiente"}),t.jsx(f.ListItem,{icon:de.faArrowDownRight,iconColor:"neutral",onClick:()=>g("tarea","hija"),children:"Hija"}),t.jsx(f.ListSeparator,{}),t.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Flujo de trabajo"}),t.jsx(f.ListItem,{icon:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>g("plantilla","dependiente"),children:"Dependiente"})]})})}),i&&c&&t.jsx(xs,{isOpen:i,onClose:x,onSuccess:h,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:o}),l&&c&&t.jsx(ws,{isOpen:l,onClose:p,onSuccess:y,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:o})]})};function Qr({reactFlowWrapper:e,nodes:a,resetZoomHistoryKey:n}){const{setViewport:s,getViewport:o}=oe.useReactFlow(),{zoom:i}=oe.useViewport(),r=Math.round(i*100),[l,d]=u.useState([]),[c,m]=u.useState(-1),[g,x]=u.useState(!1),[p,h]=u.useState(0);u.useLayoutEffect(()=>{const M=e==null?void 0:e.current;if(M){const N=M.getBoundingClientRect();h(N.width)}},[e]);const y=u.useMemo(()=>{var T;if(!a||a.length===0)return{x:0,y:0,zoom:1};const M=a.find(X=>{var U;return(U=X==null?void 0:X.data)==null?void 0:U.main})??a[0];return{x:(p||(typeof window<"u"?window.innerWidth:0))/2-(((T=M==null?void 0:M.position)==null?void 0:T.x)??0),y:20,zoom:1}},[a,p]),w=u.useCallback(M=>{if(!g){const N=[...l.slice(0,c+1),M];d(N),m(N.length-1)}},[l,c,g]),j=u.useCallback(()=>{if(g)return;const M=o(),N=Math.min(M.zoom*1.2,2);w(M),x(!0),s({x:M.x,y:M.y,zoom:N}),setTimeout(()=>x(!1),100)},[o,s,w,g]),b=u.useCallback(()=>{if(g)return;const M=o(),N=Math.max(M.zoom/1.2,.5);w(M),x(!0),s({x:M.x,y:M.y,zoom:N}),setTimeout(()=>x(!1),100)},[o,s,w,g]),v=u.useCallback(()=>{if(g)return;const M=o();Math.abs(M.zoom-1)>.01&&w(M),x(!0),s({x:M.x,y:M.y,zoom:1}),setTimeout(()=>x(!1),100)},[o,s,w,g]),O=u.useCallback(()=>{if(g||c<=0)return;const M=l[c-1];x(!0),s(M),m(c-1),setTimeout(()=>x(!1),100)},[c,l,s,g]);return u.useEffect(()=>{l.length===0&&(d([{zoom:1,x:0,y:0}]),m(0))},[l.length]),u.useEffect(()=>{n!=null&&(d([{zoom:1,x:0,y:0}]),m(0))},[n]),{isReady:p!==0&&Array.isArray(a)&&a.length>0,defaultViewport:y,zoomPercentage:r,handleZoomIn:j,handleZoomOut:b,handleZoomTo100:v,handleDoubleClick:O}}const Xr=e=>{var i,r;const a=((i=e.data)==null?void 0:i.isInternal)||!1,n=(r=e.data)==null?void 0:r.originalGroupId,s=e.selected||!1,o=l=>{if(l.preventDefault(),l.stopPropagation(),n){const c=ve.getState().collapseGroup;c&&c(n)}};return t.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 ${s?"tm-border-brand tm-shadow-02 tm-ring-2 tm-ring-blue-300 tm-ring-opacity-50":"tm-border-default tm-shadow-02"}`,children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[t.jsx(f.Icon,{name:Ve.faFlag,size:"sm",colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,background:!0,padding:"md"}),t.jsx("p",{className:"tm-text-primary tm-font-body-sm-semibold tm-leading-none tm-text-body-sm-regular tm-truncate tm-tracking-wider",children:e.data.clave}),a&&t.jsx(f.Button,{size:"sm",color:"secondary",onClick:o,className:"tm-p-2 nopan nodrag",icon:de.faMinimize,pill:"pill"})]}),a&&t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[t.jsx(f.Tag,{color:e.data.estatus==="published"?"success":"warning",label:e.data.estatus==="published"?"Publicado":"Borrador"}),(e.data.updatedAt||e.data.updated_at)&&t.jsx("p",{className:"tm-text-sm tm-text-neutral-500 tm-font-medium",children:new Date(e.data.updatedAt||e.data.updated_at).toLocaleDateString("es-ES")})]}),t.jsx(oe.Handle,{id:"bottom-source",type:"source",position:oe.Position.Bottom,className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default tm-cursor-crosshair"}),t.jsx(oe.Handle,{id:"top-target",type:"target",position:oe.Position.Top,className:"tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default tm-cursor-crosshair"})]})},Yr=()=>{const e=u.useCallback((o,i,r,l)=>{const d=(g,x)=>{const p=g.position.x,h=g.position.y,y=120,w=60,j=15;switch(x){case"top-source":case"top-target":return{x:p,y:h-w/2-j};case"bottom-source":case"bottom-target":return{x:p,y:h+w/2+j};case"left-source":case"left-target":return{x:p-y/2-j,y:h};case"right-source":case"right-target":return{x:p+y/2+j,y:h};default:return{x:p,y:h}}},c=d(o,r),m=d(i,l);return Math.sqrt(Math.pow(m.x-c.x,2)+Math.pow(m.y-c.y,2))},[]),a=u.useCallback((o,i)=>{if(o.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(o),d=r(i);return{top:"bottom",bottom:"top",left:"right",right:"left"}[l]===d},[]),n=u.useCallback((o,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 g of l){if(!a(m,g))continue;const x=e(o,i,m,g);x<d&&(d=x,c={handle1:m,handle2:g})}return c},[e,a]),s=u.useCallback((o,i,r=800)=>Math.sqrt(Math.pow(i.position.x-o.position.x,2)+Math.pow(i.position.y-o.position.y,2))<r,[]);return{findClosestHandles:n,calculateHandleDistance:e,areHandlesCompatible:a,shouldApplyMagneticConnection:s}},Jr=e=>{const[a,n]=u.useState(null),[s,o]=u.useState(null),[i,r]=u.useState(!1),l=u.useCallback((x,p,h,y)=>{n({isOpen:!0,nodeId:x,position:p,sourceNodeId:h,sourceHandleId:y})},[]),d=u.useCallback(()=>{n(null)},[]),c=u.useCallback((x,p,h,y,w)=>{r(!0),o({isOpen:!0,sourceNodeId:x,sourceHandleId:h,targetNodeId:p,targetHandleId:y,position:w})},[]),m=u.useCallback(()=>{r(!1),o(null)},[]),g=u.useCallback(()=>{var p,h,y;if(!(a!=null&&a.sourceNodeId))return null;const x=e.find(w=>w.id===a.sourceNodeId);return x?{id:x.id,label:(p=x.data)==null?void 0:p.label,nodeType:(h=x.data)==null?void 0:h.nodeType,connectionType:(y=x.data)==null?void 0:y.connectionType,data:x.data}:null},[a,e]);return{newNodePopup:a,connectionPopup:s,isConnectingExistingNodes:i,openNewNodePopup:l,closeNewNodePopup:d,openConnectionPopup:c,closeConnectionPopup:m,getParentNodeInfo:g,setIsConnectingExistingNodes:r}},Zr=({initialNodes:e,initialEdges:a})=>{const[n,s,o]=oe.useNodesState(Tt(e)),[i,r,l]=oe.useEdgesState(a),[d,c]=u.useState(!1),m=u.useCallback(k=>{r(k)},[r]),{toObject:g}=oe.useReactFlow(),{findClosestHandles:x,shouldApplyMagneticConnection:p}=Yr(),{updateGraphLayout:h,get:y,update:w}=ze(),j=qe(k=>k.activeTemplate),b=qe(k=>k.setActiveTemplate),v=le.useQueryClient(),{removeParentIdFromNodes:O}=it(),{newNodePopup:H,connectionPopup:M,isConnectingExistingNodes:N,openNewNodePopup:A,closeNewNodePopup:T,openConnectionPopup:X,closeConnectionPopup:U,getParentNodeInfo:L,setIsConnectingExistingNodes:I}=Jr(n),{createNodeFromPopup:V,createConnectionFromPopup:D,updateNodeFromPopup:q,updateAfterDeleted:B}=ys({nodes:n,edges:i,setNodes:s,setEdges:m,newNodePopup:H,connectionPopup:M,closeNewNodePopup:T,closeConnectionPopup:U,setIsConnectingExistingNodes:I});u.useEffect(()=>{if(e&&e.length>0){if(!(e.some((F,_)=>{const Q=n[_];return Q?F.id!==Q.id||JSON.stringify(F.position)!==JSON.stringify(Q.position)||JSON.stringify(F.data)!==JSON.stringify(Q.data):!0})||e.length!==n.filter(F=>{var _;return!((_=F.data)!=null&&_.isInternal)}).length)&&n.length>0)return;const{expandedGroups:P,groupTemplateData:W}=ve.getState(),E=Tt(e),C=new Set(E.map(F=>F.id));let R=n.filter(F=>{var _,Q;return((_=F.data)==null?void 0:_.isInternal)&&typeof((Q=F.data)==null?void 0:Q.originalGroupId)=="string"&&P.has(F.data.originalGroupId)&&C.has(F.data.originalGroupId)});if(R.length>0){const F=E.map(_=>{var Q;if(P.has(_.id)){const Z=n.find(ie=>ie.id===_.id),ae=(Q=Z==null?void 0:Z.data)==null?void 0:Q.expandedDimensions;if(ae)return{..._,style:{..._.style,width:ae.width,height:ae.height},data:{..._.data,isExpanded:!0,expandedDimensions:ae}}}return _});s([...F,...R])}else if(P.size>0){const F=E.map(_=>P.has(_.id)&&W[_.id]?{..._,data:{..._.data,isExpanded:!0,needsReExpansion:!0}}:_);s(F)}else s(E)}else s([])},[e,s]),u.useEffect(()=>{if(!d&&a&&a.length>0){const{expandedGroups:k}=ve.getState(),P=Tt(e),W=new Set(P.map(R=>R.id)),E=i.filter(R=>{var F,_;return((F=R.data)==null?void 0:F.isInternal)&&typeof((_=R.data)==null?void 0:_.originalGroupId)=="string"&&k.has(R.data.originalGroupId)&&W.has(R.data.originalGroupId)}),C=i.filter(R=>{var F,_;return((F=R.data)==null?void 0:F.redirectedToInternal)&&typeof((_=R.data)==null?void 0:_.originalTarget)=="string"&&k.has(R.data.originalTarget)&&W.has(R.data.originalTarget)});if(E.length>0||C.length>0){const R=a.filter(F=>!C.some(_=>{var Q;return((Q=_.data)==null?void 0:Q.originalTarget)===F.target}));m([...R,...E,...C])}else m(a)}},[a,m,d]);const $=u.useCallback((k,P,W=!1)=>{const C=i.filter(_=>_.target===P).length>0;if(i.some(_=>_.source===k&&_.target===P||_.source===P&&_.target===k)&&!W)return f.toast.warning("La tarea destino ya tiene una conexión"),!1;const F=!C;return typeof window<"u"&&(window.validConnectionTypes={dependiente:F,hija:F}),F?!0:(f.toast.warning("La tarea destino ya tiene una conexión de entrada"),!1)},[i]),Y=u.useCallback(k=>{if(!$r(k.source,k.target))return;et(k.source)&&!k.sourceHandle&&(k.sourceHandle=Te.DEFAULT_SOURCE_HANDLE);const P=n.find(E=>E.id===k.source),W=n.find(E=>E.id===k.target);if(P&&W){if(!$(k.source,k.target))return;X(k.source,k.target,k.sourceHandle,k.targetHandle);return}return m(E=>oe.addEdge(k,E))},[n,X,m,$]),z=u.useCallback((k,P)=>{var W;if(!N&&!P.isValid&&P.fromNode){const E=n.find(ae=>ae.id===P.fromNode.id);if((E==null?void 0:E.type)==="group"){f.toast.warning("En una plantilla, no se puede crear una conexión");return}const C=Ur(k),R=document.elementFromPoint(C.x,C.y);if(R!=null&&R.closest(".react-flow__node"))return;const F=crypto.randomUUID(),_=((W=P.fromHandle)==null?void 0:W.id)||Te.DEFAULT_SOURCE_HANDLE,Z=et(P.fromNode.id)?Te.DEFAULT_SOURCE_HANDLE:_;A(F,C,P.fromNode.id,Z)}},[N,A,n]),re=u.useCallback(async k=>{var C,R,F;const P=bs(k),W=k.length>0?(R=(C=k[0])==null?void 0:C.data)==null?void 0:R.id:0;m(_=>_.filter(Q=>!P.includes(Q.source)&&!P.includes(Q.target)));let E;for(const _ of k)try{const Q=_.data;if((F=Q==null?void 0:Q.plantilla)!=null&&F.id){E=Q.plantilla.id;break}}catch{}try{m(_=>((async()=>{await B(P,_,E,W)})().catch(Q=>{console.error("❌ Error en updateAfterDeleted:",Q)}),_))}catch(_){console.error("❌ Error en onDeleteNode:",_)}},[m,B]),ee=u.useCallback(async k=>{var W,E,C,R,F,_,Q,Z,ae,ie,J,se,te,fe;if(!k||k.length===0)return;let P;if(j!=null&&j.id)P=j.id;else for(const ce of k){const xe=n.find(ye=>ye.id===ce.source),we=n.find(ye=>ye.id===ce.target);if(xe!=null&&xe.data&&typeof xe.data=="object"&&"plantilla"in xe.data){const ye=xe.data.plantilla;if(ye!=null&&ye.id){P=ye.id;break}}if(we!=null&&we.data&&typeof we.data=="object"&&"plantilla"in we.data){const ye=we.data.plantilla;if(ye!=null&&ye.id){P=ye.id;break}}}if(!P){console.warn("⚠️ onEdgesDelete - No se pudo obtener templateId");return}try{const ce=await y(P);if(!ce){console.warn("⚠️ onEdgesDelete - Template no encontrado en IndexedDB");return}const xe=k.map(me=>me.id),we=((C=(E=(W=ce.graph_layout)==null?void 0:W.snapshot)==null?void 0:E.edges)==null?void 0:C.filter(me=>{var ge;return!xe.includes(me.id)&&!((ge=me.data)!=null&&ge.isInternal)}))||[],Oe=(((_=(F=(R=ce.graph_layout)==null?void 0:R.snapshot)==null?void 0:F.nodes)==null?void 0:_.filter(me=>{var ge;return!((ge=me.data)!=null&&ge.isInternal)&&!me.parentId}))||[]).map(me=>{const{style:ge,measured:Ie,data:he,...Be}=me,{expandedDimensions:Le,isExpanded:ct,needsReExpansion:_l,...Jt}=he||{},Bs=ge?{...ge,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0,Rs=me.data.id===k[0].data.childId?{...Jt,tarea_padre:null,id_t_requerida:null}:Jt;return{...Be,style:Bs,data:Rs}}),Ne=((Z=(Q=ce.graph_layout)==null?void 0:Q.snapshot)==null?void 0:Z.edges)||[];if(!(JSON.stringify(Ne)!==JSON.stringify(we)))return;const ue={...ce,graph_layout:{id:((ae=ce.graph_layout)==null?void 0:ae.id)||0,snapshot:{nodes:Oe,edges:we,viewport:((J=(ie=ce.graph_layout)==null?void 0:ie.snapshot)==null?void 0:J.viewport)||{x:0,y:0,zoom:1}},history:((se=ce.graph_layout)==null?void 0:se.history)||[],zoom:((te=ce.graph_layout)==null?void 0:te.zoom)||1,position:((fe=ce.graph_layout)==null?void 0:fe.position)||{x:0,y:0}},estatus:_e.DIRTY,updatedAt:new Date().toISOString()};await O({templateId:P,id:k[0].data.childId}),await w(P,ue),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===(j==null?void 0:j.id)&&b(ue)}catch(ce){console.error("❌ onEdgesDelete - Error al actualizar template layout:",ce)}},[n,j,y,w,b,O]),S=u.useCallback(async k=>!k.nodes.some(W=>W.type==="start"||W.id===Te.START_NODE_ID),[]),K=u.useCallback((k,P,W)=>{var F,_,Q;const E=n.find(Z=>Z.id===P.id);if(!E)return;if(E.type==="group"&&((F=E.data)!=null&&F.isExpanded)){m(Z=>Z.map(ae=>{if(ae.hidden&&ae.target===P.id){const{hidden:ie,...J}=ae;return J}return ae}));return}let C;if(E.type==="group"?C=j==null?void 0:j.id:(Q=(_=P==null?void 0:P.data)==null?void 0:_.plantilla)!=null&&Q.id&&(C=P.data.plantilla.id),!C)return;const R=i.map(Z=>{var J,se,te,fe,ce;if(Nt(Z))return Z;const ae=n.find(xe=>xe.id===Z.source),ie=n.find(xe=>xe.id===Z.target);if(ae&&ie){const xe=ae.type==="group"&&((J=ae.data)==null?void 0:J.isExpanded),we=ie.type==="group"&&((se=ie.data)==null?void 0:se.isExpanded),ye=(te=ae.data)==null?void 0:te.isInternal,Oe=(fe=ie.data)==null?void 0:fe.isInternal,Ne=(ce=Z.data)==null?void 0:ce.redirectedToInternal;if(xe||we||ye||Oe||Ne)return Z;if(ae.id===P.id||ie.id===P.id||p(ae,ie,Te.MAGNETIC_CONNECTION_DISTANCE)){const ue=x(ae,ie);if(ue!=null&&ue.handle1&&(ue!=null&&ue.handle2))return{...Z,sourceHandle:ue.handle1,targetHandle:ue.handle2}}}return Z});if(JSON.stringify(i)!==JSON.stringify(R))m(R),setTimeout(()=>{const Z=g();h(C,Z)},100);else{const Z=g();h(C,Z)}},[n,i,j,h,g,m,x,p]),G=u.useCallback(k=>{o(k);const P=Hr(k);if(P.length>0){const W=P.filter(E=>{var R;const C=n.find(F=>F.id===E);return(C==null?void 0:C.type)==="group"&&((R=C==null?void 0:C.data)==null?void 0:R.isExpanded)});if(W.length>0){m(E=>E.map(C=>{var _;const R=W.includes(C.target),F=!((_=C.data)!=null&&_.redirectedToInternal);return R&&F?{...C,hidden:!0}:C}));return}c(!0),setTimeout(()=>{const E=i.map(R=>{var Q,Z,ae,ie;if(Nt(R))return{...R};const F=n.find(J=>J.id===R.source),_=n.find(J=>J.id===R.target);if(F&&_){const J=F.type==="group"&&((Q=F.data)==null?void 0:Q.isExpanded),se=_.type==="group"&&((Z=_.data)==null?void 0:Z.isExpanded),te=(ae=F.data)==null?void 0:ae.isInternal,fe=(ie=_.data)==null?void 0:ie.isInternal;if(J||se||te||fe)return{...R};if(p(F,_,Te.MAGNETIC_CONNECTION_DISTANCE)){const ce=x(F,_);if(ce!=null&&ce.handle1&&(ce!=null&&ce.handle2)&&(R.sourceHandle!==ce.handle1||R.targetHandle!==ce.handle2))return{...R,sourceHandle:ce.handle1,targetHandle:ce.handle2}}}return{...R}});if(i.some((R,F)=>{const _=E[F];return R.sourceHandle!==_.sourceHandle||R.targetHandle!==_.targetHandle})){const R=E.map(F=>({...F,id:F.id}));m(R)}setTimeout(()=>{c(!1)},200)},0)}},[o,i,n,m,x,p,c]);return{nodes:n,edges:i,newNodePopup:H,connectionPopup:M,setNodes:s,setEdges:m,onEdgesChange:l,onConnect:Y,onConnectEnd:z,onDeleteNode:re,onEdgesDelete:ee,onBeforeDelete:S,handleNodesChange:G,onDragEnd:K,getParentNodeInfo:L,isProtectedConnection:Nt,isStartNode:et,createNodeFromPopup:V,updateNodeFromPopup:q,closeNewNodePopup:T,createConnectionFromPopup:D,closeConnectionPopup:U}},ei=({isOpen:e,onClose:a,createConnectionFromPopup:n,availableConnections:s})=>{if(!e)return null;const o=s||{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}},i=(r,l)=>{(r==="tarea"?o.tarea[l]:o.plantilla[l])&&n(r,l)};return t.jsx(t.Fragment,{children:t.jsxs("div",{className:"tm-fixed tm-inset-0 tm-z-50 tm-flex tm-items-center tm-justify-center",children:[t.jsx("div",{className:"tm-bg-black/20 tm-absolute tm-inset-0",onClick:a}),t.jsx("div",{className:"tm-shadow-lg tm-border-default tm-border-1 tm-relative tm-rounded-lg tm-bg-surface-default tm-p-4",children:t.jsx("div",{children:t.jsxs(f.List,{children:[t.jsx("p",{className:"tm-text-sm tm-px-4 tm-font-medium tm-text-neutral-300",children:"Tarea"}),t.jsxs(f.ListItem,{icon:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("tarea","dependiente"),children:["Dependiente ",!o.tarea.dependiente&&"(No disponible)"]}),t.jsxs(f.ListItem,{icon:de.faArrowDownRight,iconColor:"neutral",onClick:()=>i("tarea","hija"),children:["Hija ",!o.tarea.hija&&"(No disponible)"]}),t.jsx(f.ListSeparator,{}),t.jsx("p",{className:"tm-text-sm tm-px-4 tm-py-2 tm-font-medium tm-text-neutral-300",children:"Flujo de trabajo"}),t.jsxs(f.ListItem,{icon:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("plantilla","dependiente"),children:["Dependiente ",!o.plantilla.dependiente&&"(No disponible)"]})]})})})]})})},ti=({data:e,id:a,selected:n})=>{const{expandedGroups:s}=ve(),[o,i]=u.useState(!1),r=u.useRef(!1);u.useEffect(()=>{const g=(e==null?void 0:e.needsReExpansion)&&s.has(a),x=(e==null?void 0:e.templateId)||(e==null?void 0:e.id);if(g&&x&&!r.current){r.current=!0;const h=ve.getState().expandGroup;h&&h(a,x).catch(y=>{console.error("Error al re-expandir grupo:",y),r.current=!1})}s.has(a)||(r.current=!1)},[e,a,s]);const l=async g=>{g.preventDefault(),g.stopPropagation();const x=(e==null?void 0:e.templateId)||(e==null?void 0:e.id);if(x){i(!0);try{const p=ve.getState(),h=p.expandGroup,y=p.collapseGroup,w=s.has(a);w&&y?y(a):!w&&h&&await h(a,x)}catch{}finally{i(!1)}}},d=s.has(a),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 t.jsxs("div",{className:`tm-rounded-lg tm-shadow-02 tm-bg-surface-default tm-relative tm-transition-all tm-duration-200 ${n?"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:[t.jsx(lt,{isLoading:o}),t.jsx(oe.Handle,{id:"top-target",type:"target",position:oe.Position.Top,className:`tm-h-[16px] tm-w-[16px] tm-border-black-light !tm-bg-surface-default ${d?"tm-opacity-0 tm-pointer-events-none":""}`,isConnectable:!d}),t.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}),t.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}),t.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&&t.jsxs("div",{className:"tm-flex tm-justify-between tm-gap-x-8 tm-p-16",children:[t.jsx(f.Icon,{name:de.faChartDiagram,color:"brand",size:"lg"}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:[t.jsx("p",{className:"tm-text-primary tm-font-bold tm-leading-none tm-text-body-lg-regular tm-truncate tm-tracking-wider",children:e.clave||e.nombre_plantilla||"N/A"}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-4",children:[t.jsx(f.Badge,{size:"sm",theme:"soft",color:e.estatus==="published"?"success":"warning",label:e.estatus==="published"?"Publicado":"Borrador"}),e.updatedAt&&t.jsx("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-semibold",children:new Date(e.updatedAt).toLocaleDateString("es-ES")})]})]}),t.jsx("div",{children:t.jsx(f.Button,{size:"sm",color:"secondary",pill:"pill",onClick:l,disabled:o,className:`tm-p-2 ${o?"tm-opacity-50":""} nopan nodrag`,icon:d?Se.faCompress:Se.faExpand})})]})]})},ai=(e,a,n,s)=>{const o=u.useRef(e),i=u.useRef(a);u.useEffect(()=>{o.current=e},[e]),u.useEffect(()=>{i.current=a},[a]);const{expandedGroups:r,groupTemplateData:l,toggleGroupExpansion:d,setGroupTemplateData:c,clearGroupTemplateData:m}=ve(),g=le.useQueryClient(),{getTemplateWithTasks:x}=ds(),{hydrateTasks:p}=ps(),h=u.useCallback(async(b,v)=>{var O,H,M,N;try{await g.invalidateQueries({queryKey:["template",v]});const A=await x(v),T=(M=(H=(O=A==null?void 0:A.graph_layout)==null?void 0:O.snapshot)==null?void 0:H.nodes)==null?void 0:M.filter(_=>{var Q,Z;return((Q=_.data)==null?void 0:Q.isInternal)||_.parentId||((Z=_.id)==null?void 0:Z.includes("-internal-"))});if(T&&T.length>0&&console.warn("⚠️ [expandGroup] Nodos sospechosos en API para plantilla",v,":",T),!((N=A==null?void 0:A.graph_layout)!=null&&N.snapshot))throw new Error(`No se encontraron datos de graph_layout en la plantilla: ${v}`);const X=A.graph_layout.snapshot.nodes||[],U=X.filter(_=>{var J,se;const Q=(J=_.data)==null?void 0:J.isInternal,Z=!!_.parentId,ae=(se=_.id)==null?void 0:se.includes("-internal-"),ie=Q||Z||ae;return ie&&console.warn("🗑️ [expandGroup] Filtrando nodo corrupto:",{id:_.id,type:_.type,esInterno:Q,tieneParentId:Z,tieneInternalEnId:ae}),!ie}),L={...A,graph_layout:{...A.graph_layout,snapshot:{...A.graph_layout.snapshot,nodes:U,edges:(A.graph_layout.snapshot.edges||[]).filter(_=>{var Q,Z;return!((Q=_.data)!=null&&Q.isInternal)&&!((Z=_.id)!=null&&Z.includes("-internal-"))})}}},I=X.length-U.length;I>0?console.warn(`⚠️ [expandGroup] Se filtraron ${I} nodos internos corruptos de la BD para plantilla ${v}`):console.log(`✅ [expandGroup] No se encontraron nodos corruptos en plantilla ${v}`);const V=await p(L),D={...L,hydratedNodes:V,nodes:V||L.graph_layout.snapshot.nodes||[],edges:L.graph_layout.snapshot.edges||[]},q=D.nodes,B=D.edges;if(!q||!B){console.error("❌ No se encontraron nodos o edges en la plantilla:",v);return}c(b,{nodes:q,edges:B,viewport:D.graph_layout.snapshot.viewport||{x:0,y:0,zoom:1}});const $=o.current.find(_=>_.id===b);if(!$){console.error("❌ No se encontró el nodo grupo:",b);return}const Y=q.filter(_=>_.id!==b);let z=1/0,re=1/0,ee=-1/0,S=-1/0;Y.forEach(_=>{var ce,xe,we,ye,Oe,Ne;const Q=((ce=_.position)==null?void 0:ce.x)||0,Z=((xe=_.position)==null?void 0:xe.y)||0,ae=typeof((we=_.style)==null?void 0:we.width)=="number"?_.style.width:((ye=_.measured)==null?void 0:ye.width)||268,ie=typeof((Oe=_.style)==null?void 0:Oe.height)=="number"?_.style.height:((Ne=_.measured)==null?void 0:Ne.height)||111,J=Q-ae/2,se=Q+ae/2,te=Z,fe=Z+ie;z=Math.min(z,J),re=Math.min(re,te),ee=Math.max(ee,se),S=Math.max(S,fe)});const K=80,G=60,k=ee-z,P=S-re,W=k+K*2,E=P+K*2+G,C=q.map((_,Q)=>{var ce,xe;if(_.id===b)return null;const Z=((ce=_.position)==null?void 0:ce.x)||0,ae=((xe=_.position)==null?void 0:xe.y)||0,ie=Z-z+K,J=ae-re+K+G,se=_.type==="start"||_.id==="start",te=se?{..._.data,estatus:$.data.estatus,updatedAt:$.data.updatedAt,createdAt:$.data.createdAt,isInternal:!0,originalGroupId:b,originalNodeId:_.id}:{..._.data,isInternal:!0,originalGroupId:b,originalNodeId:_.id};return{..._,id:`${b}-internal-${_.id}`,parentId:b,extent:"parent",type:_.type==="group"?"main":_.type,position:{x:ie,y:J},style:{..._.style},data:te,draggable:!1,selectable:se,selected:!1,deletable:!1,connectable:!1,focusable:se,zIndex:999}}).filter(Boolean),R=B.map(_=>{const Q=C.some(ie=>ie&&ie.id===`${b}-internal-${_.source}`),Z=C.some(ie=>ie&&ie.id===`${b}-internal-${_.target}`);return!Q||!Z?null:{..._,id:`${b}-internal-${_.id}`,source:`${b}-internal-${_.source}`,target:`${b}-internal-${_.target}`,style:{..._.style},data:{..._.data,isInternal:!0,originalGroupId:b}}}).filter(Boolean),F=C.find(_=>{var Q;return _&&((Q=_.data)==null?void 0:Q.originalNodeId)==="start"});F&&s(_=>_.map(Q=>Q.target===b?{...Q,target:F.id,targetHandle:"top-target",data:{...Q.data,redirectedToInternal:!0,originalTarget:b,originalTargetHandle:Q.targetHandle}}:Q)),d(b),n(_=>[..._.map(Z=>{if(Z.id===b){const{needsReExpansion:ae,...ie}=Z.data||{};return{...Z,style:{...Z.style,width:W,height:E},data:{...ie,isExpanded:!0,expandedDimensions:{width:W,height:E}},zIndex:1e3}}return Z}),...C]),s(_=>[..._,...R])}catch(A){console.error("❌ Error al expandir el grupo:",A)}},[g,x,p,c,d,n,s]),y=u.useCallback(b=>{var T,X;const v=o.current,O=i.current,H=v.find(U=>U.id===b),M=((T=H==null?void 0:H.data)==null?void 0:T.templateId)||((X=H==null?void 0:H.data)==null?void 0:X.id),N=v.filter(U=>!U.id.startsWith(`${b}-internal-`)&&U.parentId!==b).map(U=>U.id===b?{...U,style:{...U.style,width:void 0,height:void 0},data:{...U.data,isExpanded:!1,expandedDimensions:void 0},zIndex:void 0}:U),A=O.filter(U=>!U.id.startsWith(`${b}-internal-`)).map(U=>{var L,I;if((L=U.data)!=null&&L.redirectedToInternal&&((I=U.data)==null?void 0:I.originalTarget)===b){const{redirectedToInternal:V,originalTarget:D,originalTargetHandle:q,...B}=U.data;return{...U,target:b,targetHandle:q||U.targetHandle,data:B}}return U});n(N),s(A),d(b),m(b),M&&g.invalidateQueries({queryKey:["template",M]})},[n,s,d,m,g]),w=u.useCallback(async(b,v)=>{r.has(b)?y(b):await h(b,v)},[r,h,y]),j=u.useCallback(b=>r.has(b),[r]);return{expandGroup:h,collapseGroup:y,toggleGroup:w,isGroupExpanded:j,groupTemplateData:l}},si=()=>{const{getNodes:e,setNodes:a,screenToFlowPosition:n,setCenter:s}=oe.useReactFlow(),{copiedNodes:o,setCopiedNodes:i,getViewMode:r}=ve(),{activeTemplate:l,setActiveTemplate:d}=qe(),{updateGraphLayout:c,get:m,update:g}=ze(),x=l!=null&&l.id?r(l.id):"readonly",p=u.useCallback(()=>`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,[]),h=u.useCallback(()=>e().filter(N=>N.selected).filter(N=>!(N.type==="start"||N.id==="start"||N.type==="group")),[e]),y=u.useCallback(()=>{if(x==="readonly"){f.toast.error("No puedes copiar tareas en modo solo lectura");return}if(!l){f.toast.error("No hay una plantilla activa");return}const O=h();if(O.length===0){const M=e().filter(N=>N.selected);if(M.length>0){const N=M.some(T=>T.type==="group"),A=M.some(T=>T.type==="start"||T.id==="start");N?f.toast.error("Las plantillas conectadas no pueden ser copiadas"):A&&f.toast.error("El nodo de inicio no puede ser copiado")}else f.toast.error("No hay tareas seleccionadas para copiar");return}const H=O.map(M=>{const{selected:N,...A}=M;return{...A,data:{...A.data,_originalTemplateId:l.id}}});i(H),f.toast.success(`${O.length} ${O.length===1?"tarea copiada":"tareas copiadas"} con éxito`)},[x,l,h,e,i]),w=u.useCallback(async O=>{if(x==="readonly"){f.toast.error("No puedes pegar tareas en modo solo lectura");return}if(!l){f.toast.error("No hay una plantilla activa");return}if(o.length===0){f.toast.error("No hay tareas copiadas para pegar");return}const H=e();let M={x:0,y:0};if(O)M=n({x:O.x,y:O.y});else if(H.length>0){const I=H.reduce((D,q)=>D+q.position.x,0)/H.length,V=H.reduce((D,q)=>D+q.position.y,0)/H.length;M={x:I+50,y:V+100}}const N=o[0],A=M.x-N.position.x,T=M.y-N.position.y,X=o.map((I,V)=>{const D=p(),q=-(Date.now()+V),B=I.data.plantilla&&typeof I.data.plantilla=="object"?{...I.data.plantilla,id:l.id}:{id:l.id},{id:$,...Y}=I.data,z={...Y,id:q,reference_graph:D,plantilla:B,parent:{data:{id:null}},_originalTemplateId:void 0};return{...I,id:D,position:{x:I.position.x+A,y:I.position.y+T},data:z,selected:!0}}),L=[...H.map(I=>({...I,selected:!1})),...X];if(a(L),l.id)try{const I=await m(l.id);if(!I)return;const V=X.filter(q=>q.type!=="start"&&q.type!=="group").map(q=>{const B=q.data;return{id:B.id,reference_graph:q.id,nombre:B.nombre||B.texto_corto||"Tarea sin nombre",texto_corto:B.texto_corto||"",texto_largo:B.texto_largo||"",prioridad:B.prioridad??0,nivel_dificultad:B.nivel_dificultad??0,dias_duracion:B.dias_duracion??0,plantilla:{id:l.id},parent:{data:{id:null}},tareas:[],plantilla_dependents:B.plantilla_dependents||[],start:B.start||!1,es_grupo:B.es_grupo||!1,optional:B.optional||!1,subtask_completadas:B.subtask_completadas||0,subtask_totales:B.subtask_totales||0}}),D={...I,tarea_plantillas:[...I.tarea_plantillas,...V],estatus:"dirty",updatedAt:new Date().toISOString()};await g(l.id,D),d(D),setTimeout(async()=>{await c(l.id,{nodes:L,edges:[]})},50)}catch(I){console.error("Error al actualizar template en IndexedDB:",I)}if(X.length>0){const I=X.reduce((D,q)=>D+q.position.x,0)/X.length,V=X.reduce((D,q)=>D+q.position.y,0)/X.length;s(I,V,{zoom:1,duration:800})}f.toast.success(`${X.length} ${X.length===1?"tarea pegada":"tareas pegadas"} con éxito`)},[x,l,o,e,a,n,s,p,c,m,g,d]),j=u.useCallback(()=>o.length>0,[o]),v=h().length>0;return{handleCopy:y,handlePaste:w,hasCopiedNodes:j,hasSelectableNodes:v,copiedNodesCount:o.length}},ni={main:Kr,plus:Gr,start:Xr,group:ti},oi=[.5,0],ri=({initialNodes:e,initialEdges:a,debugEvents:n=!1})=>{var Ne,$e;const s=u.useRef(null),{nodes:o,edges:i,onEdgesChange:r,onConnect:l,onConnectEnd:d,onBeforeDelete:c,onDeleteNode:m,onEdgesDelete:g,handleNodesChange:x,newNodePopup:p,getParentNodeInfo:h,createNodeFromPopup:y,closeNewNodePopup:w,connectionPopup:j,createConnectionFromPopup:b,closeConnectionPopup:v,onDragEnd:O,setNodes:H,setEdges:M}=Zr({initialNodes:e,initialEdges:a}),{expandGroup:N,collapseGroup:A}=ai(o,i,H,M),{handleCopy:T,handlePaste:X,hasCopiedNodes:U,copiedNodesCount:L}=si();u.useEffect(()=>{if(!n)return;const ue=he=>{console.log("🔍 [DEBUG] KeyDown:",{key:he.key,code:he.code,shiftKey:he.shiftKey,ctrlKey:he.ctrlKey,metaKey:he.metaKey,altKey:he.altKey,target:he.target,defaultPrevented:he.defaultPrevented,bubbles:he.bubbles,timestamp:new Date().toISOString()})},me=he=>{console.log("🔍 [DEBUG] KeyUp:",{key:he.key,code:he.code,shiftKey:he.shiftKey,timestamp:new Date().toISOString()})},ge=he=>{var Be,Le;console.log("🔍 [DEBUG] Click:",{button:he.button,shiftKey:he.shiftKey,ctrlKey:he.ctrlKey,metaKey:he.metaKey,altKey:he.altKey,target:(Be=he.target)==null?void 0:Be.tagName,targetClass:(Le=he.target)==null?void 0:Le.className,defaultPrevented:he.defaultPrevented,bubbles:he.bubbles,timestamp:new Date().toISOString()})},Ie=he=>{console.log("🔍 [DEBUG] MouseDown:",{button:he.button,shiftKey:he.shiftKey,ctrlKey:he.ctrlKey,metaKey:he.metaKey,defaultPrevented:he.defaultPrevented,timestamp:new Date().toISOString()})};return document.addEventListener("keydown",ue,!0),document.addEventListener("keyup",me,!0),document.addEventListener("click",ge,!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",ue,!0),document.removeEventListener("keyup",me,!0),document.removeEventListener("click",ge,!0),document.removeEventListener("mousedown",Ie,!0),console.log("🔍 [DEBUG] Event listeners desactivados.")}},[n]);const V=o.filter(ue=>!(!ue.selected||ue.type==="start"||ue.id==="start"||ue.type==="group")).length,D=V>0,q=u.useRef(N),B=u.useRef(A);u.useEffect(()=>{q.current=N,B.current=A},[N,A]),u.useEffect(()=>{const ue=async(ge,Ie)=>{q.current&&await q.current(ge,Ie)},me=ge=>{B.current&&B.current(ge)};ve.setState({expandGroup:ue,collapseGroup:me})},[]);const{getViewMode:$,setFlowViewportForTemplate:Y}=ve(),{activeTemplate:z}=qe(),re=(z==null?void 0:z.id)??null,ee=ve(ue=>re!=null?ue.flowViewportByTemplateId[re]:void 0),S=u.useMemo(()=>{var me,ge;if(re==null)return;if(ee)return ee;const ue=(ge=(me=z==null?void 0:z.graph_layout)==null?void 0:me.snapshot)==null?void 0:ge.viewport;if(ue&&typeof ue.x=="number"&&typeof ue.y=="number"&&typeof ue.zoom=="number")return{x:ue.x,y:ue.y,zoom:ue.zoom}},[re,ee,($e=(Ne=z==null?void 0:z.graph_layout)==null?void 0:Ne.snapshot)==null?void 0:$e.viewport]),K=u.useCallback((ue,me)=>{re!=null&&Y(re,me)},[re,Y]),{zoomPercentage:G,handleZoomIn:k,handleZoomOut:P,handleZoomTo100:W,handleDoubleClick:E}=Qr({reactFlowWrapper:s,nodes:o,resetZoomHistoryKey:re}),R=(z!=null&&z.id?$(z.id):"readonly")==="readonly";u.useEffect(()=>{if(R)return;const ue=me=>{const ge=me.target;ge.tagName==="INPUT"||ge.tagName==="TEXTAREA"||ge.isContentEditable||((me.ctrlKey||me.metaKey)&&me.key==="c"&&(me.preventDefault(),T()),(me.ctrlKey||me.metaKey)&&me.key==="v"&&(me.preventDefault(),X()))};return document.addEventListener("keydown",ue),()=>{document.removeEventListener("keydown",ue)}},[T,X,R]);const F=u.useCallback((ue,me)=>{const ge=ue.target;ge.tagName==="BUTTON"||ge.closest("button")||ge.closest('[role="button"]')||ge.classList.contains("nopan")||ge.classList.contains("nodrag")},[]),_=u.useCallback(ue=>{const me=ue.filter(ge=>{var Ie,he;if(ge.type==="position"&&ge.dragging===!1){const Be=o.find(Le=>Le.id===ge.id);if(Be&&ge.position){const Le=Math.abs((ge.position.x||0)-(((Ie=Be.position)==null?void 0:Ie.x)||0)),ct=Math.abs((ge.position.y||0)-(((he=Be.position)==null?void 0:he.y)||0));if(Le<3&&ct<3)return!1}}return!0});me.length>0&&x(me)},[x,o]),Q=R?void 0:r,Z=R?void 0:_,ae=R?void 0:l,ie=R?void 0:d,J=R?void 0:c,se=R?void 0:O,te=R?void 0:m,fe=R?void 0:g,ce=R?null:["Backspace","Delete"],ye=R?{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},Oe=()=>{if(j)return{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}}};return t.jsxs("div",{className:"wrapper",ref:s,style:{width:"100%",height:"100vh"},children:[t.jsxs(oe.ReactFlow,{nodes:o,edges:i,nodeTypes:ni,onEdgesChange:Q,onNodesChange:Z,onConnect:ae,onConnectEnd:ie,onBeforeDelete:J,onNodeDragStop:se,onNodesDelete:te,onEdgesDelete:fe,onNodeClick:F,onMoveEnd:K,...ye,...S?{defaultViewport:S,fitView:!1}:{fitView:!0,fitViewOptions:{padding:2}},nodeOrigin:oi,defaultEdgeOptions:{type:"smoothstep"},connectionLineType:oe.ConnectionLineType.SmoothStep,deleteKeyCode:ce,multiSelectionKeyCode:R?null:"Shift",selectionOnDrag:!1,panOnDrag:R?!0:[0],nodeClickDistance:15,selectNodesOnDrag:!1,nodeDragThreshold:10,autoPanOnNodeDrag:!1,autoPanOnConnect:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",children:[t.jsx(oe.Background,{}),!R&&t.jsx(oe.Panel,{position:"bottom-left",className:"tm-m-0",children:t.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:[t.jsx("div",{className:"tm-font-semibold tm-text-neutral-900 tm-mb-2",children:"Atajos de teclado"}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-1",children:[t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[t.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"Shift"}),t.jsx("span",{children:"+ clic para seleccionar múltiples tareas"})]}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[t.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"Ctrl"}),t.jsx("span",{children:"+"}),t.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"C"}),t.jsx("span",{children:"Copiar"})]}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-8",children:[t.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"Ctrl"}),t.jsx("span",{children:"+"}),t.jsx("kbd",{className:"tm-px-2 tm-pt-0.5 tm-bg-neutral-100 tm-rounded tm-text-sm",children:"V"}),t.jsx("span",{children:"Ppegar"})]})]})]})}),t.jsx(oe.Panel,{position:"top-left",className:"tm-m-0",children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-2",children:[t.jsxs("div",{children:[z.estatusFromStrapi===Ae.PUBLISHED&&t.jsx(f.Tag,{color:"success",label:"Publicado"}),z.estatusFromStrapi===Ae.DRAFT&&t.jsx(f.Tag,{color:"warning",label:"Borrador"})]}),!R&&V>0&&t.jsxs("p",{className:"tm-text-blue-dark-500 tm-text-xs tm-font-medium",children:[V," ",V===1?"tarea seleccionada":"tareas seleccionadas"]})]})}),t.jsx(oe.Panel,{position:"top-right",className:"tm-m-0",children:t.jsxs("div",{className:"tm-flex tm-gap-4",children:[!R&&t.jsxs(f.ButtonGroup,{children:[t.jsxs(f.Button,{leftSlot:de.faCopy,onClick:T,disabled:!D,size:"xxs",color:D?"primary":"secondary",title:D?`Copiar ${V} ${V===1?"tarea":"tareas"} (Ctrl+C)`:"Selecciona tareas para copiar (mantén Shift y haz clic)",children:["Copiar ",V>0&&`(${V})`]}),t.jsxs(f.Button,{leftSlot:de.faFile,size:"xxs",onClick:()=>X(),disabled:!U(),color:U()?"primary":"secondary",title:U()?`Pegar ${L} ${L===1?"tarea":"tareas"} (Ctrl+V)`:"No hay tareas copiadas",children:["Pegar ",L>0&&`(${L})`]})]}),t.jsxs(f.ButtonGroup,{color:"secondary",size:"xxs",children:[t.jsx(f.Button,{icon:de.faMinus,onClick:P,color:"secondary"}),t.jsxs(f.Button,{onClick:W,onDoubleClick:E,color:"secondary",children:[G,"%"]}),t.jsx(f.Button,{icon:de.faPlus,onClick:k})]})]})})]},re??"flow-none"),p&&t.jsx(Wr,{isOpen:p.isOpen,position:p.position,onClose:w,createNodeFromPopup:y,parentNodeInfo:h()}),j&&t.jsx(ei,{isOpen:j.isOpen,onClose:v,createConnectionFromPopup:b,availableConnections:Oe()})]})},ii=({initialNodes:e,initialEdges:a,debugEvents:n})=>t.jsx(oe.ReactFlowProvider,{children:t.jsx(ri,{initialNodes:e,initialEdges:a,debugEvents:n})}),rt=We.create(e=>({step:1,setStep:a=>e({step:a}),reset:()=>e({step:1})})),li=({limit:e})=>{const a=rt(r=>r.step),n=rt(r=>r.setStep),s=u.useCallback(()=>{a<e&&n(a+1)},[a,n,e]),o=u.useCallback(()=>{a>1&&a<=e&&n(a-1)},[a,n,e]),i=u.useCallback(r=>{r>0&&r<=e&&n(r)},[n,e]);return u.useMemo(()=>({step:a,nextStep:s,prevStep:o,onStepChange:i}),[a,s,o,i])},_a=["fase_plantilla","tipo_plantilla","categoria","tipo_medio","medio_especifico","pertenencia_medio","ubicacion_medio","responsable_impresion"],Ta=["fase_plantilla","modo_configuracion","tipo_medio","formato_salida"],Na=["tipo_medio","formato_salida","medio_especifico"],Ca={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"]}}},Sa={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 Qt(e){const[a,n]=u.useState([]),[s,o]=u.useState({}),{setClaveParams:i,templateFormData:r,setTemplateFormData:l,resetTemplateFormData:d,setDisableField:c,setClave:m,claveParams:g,setParamTipo:x}=ke(),{tasks_api:p}=pe(),h=rt(S=>S.step),{data:y,error:w,isSuccess:j,isError:b}=le.useQuery({queryKey:["paramsTipoPlantilla"],queryFn:async()=>{const S=Ee.stringify({populate:{params_plantillas:{fields:["id","abbreviation","name","active","tipomedio_nombre","reference_id"]}},sort:["order:asc"],fields:["id","step","key","label","order"]},{encodeValuesOnly:!0}),K=await p.get(`/api/params-tipos?${S}`);return K.data?{paramsTiposPlantilla:be(K.data.data)}:{paramsTiposPlantilla:[]}},refetchOnWindowFocus:!1});u.useEffect(()=>{w&&b&&console.log(w)},[w,b]),u.useEffect(()=>{if(y&&j){const S=y.paramsTiposPlantilla;n(S)}},[y,j]);const v={fase_plantilla:(S,K)=>{l({fase_plantilla:S}),x({fase_plantilla:K})},tipo_plantilla:(S,K)=>{l({tipo_plantilla:S}),x({tipo_plantilla:K})},modo_configuracion:(S,K)=>{l({modo_configuracion:S}),x({modo_configuracion:K})},categoria:(S,K)=>{l({categoria:S}),x({categoria:K})},formato_salida:(S,K)=>{l({formato_salida:S}),x({formato_salida:K})},tipo_medio:(S,K)=>{l({tipo_medio:S}),x({tipo_medio:K})},medio_especifico:(S,K)=>{l({medio_especifico:S}),x({medio_especifico:K})},responsable_impresion:(S,K)=>{l({responsable_impresion:S}),x({responsable_impresion:K})},pertenencia_medio:(S,K)=>{l({pertenencia_medio:S}),x({pertenencia_medio:K})},ubicacion_medio:(S,K)=>{l({ubicacion_medio:S}),x({ubicacion_medio:K})}},O={fase_plantilla:(S,K)=>i({field:S,value:K}),tipo_plantilla:(S,K)=>i({field:S,value:K}),categoria:(S,K)=>i({field:S,value:K}),tipo_medio:(S,K)=>i({field:S,value:K}),medio_especifico:(S,K)=>i({field:S,value:K}),responsable_impresion:(S,K)=>i({field:S,value:K}),pertenencia_medio:(S,K)=>i({field:S,value:K}),ubicacion_medio:(S,K)=>i({field:S,value:K})},H={Digital:{execute:()=>{const S=a.filter(k=>k.step===3).find(k=>k.key==="responsable_impresion").params_plantillas.find(k=>k.name==="N/A").id,K="step3.responsable_impresion",G=["responsable_impresion"];l({responsable_impresion:"N/A"}),e(K,S),c({fields:G,value:!0}),i({field:"responsable_impresion",value:"NA"})}},Impreso:{execute:()=>{const S="step3.responsable_impresion",K=["responsable_impresion"];l({responsable_impresion:""}),e(S,""),c({fields:K,value:!1}),i({field:"responsable_impresion",value:""})}}},M={"Sitios Fijos":{execute:()=>L()},"Vallas Móviles":{execute:()=>I()},Indoors:{execute:()=>L()},Camiones:{execute:()=>V()},"Brand Riders":{execute:()=>V()}},N={"Sitios Fijos":{execute:()=>U()},"Vallas Móviles":{execute:()=>U()},Indoors:{execute:()=>U()},Camiones:{execute:()=>{X(),H.Impreso.execute()}},"Brand Riders":{execute:()=>{X(),H.Impreso.execute()}}},A={"Sitios Fijos":{execute:()=>T()},"Vallas Móviles":{execute:()=>X()},Indoors:{execute:()=>T()},Camiones:{execute:()=>X()},"Brand Riders":{execute:()=>X()}},T=()=>{const S=["medio_especifico"],K=r.modo_configuracion,G=`step${h}.medio_especifico`,k=`step${h}.formato_salida`;c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0}),c(K==="Default"?{fields:S,value:!0}:{fields:S,value:!1}),l({medio_especifico:""}),l({formato_salida:""}),e(G,""),e(k,""),i({field:"medio_especifico",value:""}),i({field:"formato_salida",value:""})},X=()=>{const S=a.filter(W=>W.step===h).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 G=`step${h}.formato_salida`,k=["formato_salida","medio_especifico"],P=`step${h}.medio_especifico`;l({medio_especifico:""}),l({formato_salida:"Impreso"}),e(G,S),e(P,""),i({field:"medio_especifico",value:""}),i({field:"tipo_medio",value:r.tipo_medio}),c({fields:k,value:!0})},U=()=>{const S=["formato_salida"],K=`step${h}.formato_salida`,G={};G.formato_salida="",l(G),e(K,""),c({fields:S,value:!1})},L=()=>{const S=["formato_salida","medio_especifico"],K=`step${h}.formato_salida`,G={};G.formato_salida="",l(G),e(K,""),c({fields:S,value:!1})},I=()=>{const S=["formato_salida"],K=["medio_especifico"],G=`step${h}.formato_salida`,k=`step${h}.medio_especifico`,P={};P.formato_salida="",P.medio_especifico="",l(P),e(G,""),e(k,""),c({fields:S,value:!1}),c({fields:K,value:!0})},V=()=>{const S=a.filter(P=>P.step===h).find(P=>P.key==="formato_salida").params_plantillas.find(P=>P.name==="Impreso").id,K=`step${h}.formato_salida`,G=`step${h}.medio_especifico`,k=["formato_salida","medio_especifico"];l({formato_salida:"Impreso"}),e(K,S),e(G,""),c({fields:k,value:!0}),H.Impreso.execute()},D=(S,K)=>{Object.keys(Ca).includes(S)&&Ca[S][K].fieldsToClear.forEach(P=>{const W={};W[P]="",l(W),i({field:P,value:""}),e&&[...new Set(a.map(C=>C.step))].forEach(C=>{const R=`step${C}.${P}`;e(R,"")})})},q=(S,K,G)=>S==="modo_configuracion"&&G?Sa[S][G][K].fieldsToEnableDisable:Sa[S][K].fieldsToEnableDisable,B=S=>a.filter(K=>K.step===S),$=S=>{var K;return s[S]||((K=a.find(G=>G.key===S))==null?void 0:K.params_plantillas)},Y=(S,K)=>{var k,P,W,E;let G=[];S==="Sitios Fijos"?K==="Preventa"?G=(k=a.find(C=>C.key==="medio_especifico"))==null?void 0:k.params_plantillas.filter(C=>C.tipomedio_nombre==="OOH"&&C.name==="PANTALLA DIGITAL"):K==="Venta"&&(G=(P=a.find(C=>C.key==="medio_especifico"))==null?void 0:P.params_plantillas.filter(C=>C.tipomedio_nombre==="OOH")):S==="Indoors"?G=(W=a.find(C=>C.key==="medio_especifico"))==null?void 0:W.params_plantillas.filter(C=>C.tipomedio_nombre==="InDoor"):G=(E=a.find(C=>C.key==="medio_especifico"))==null?void 0:E.params_plantillas,o(C=>({...C,medio_especifico:G}))},z=(S,K)=>{const G=S.key;if(Na.includes(G)&&G==="tipo_medio"){const k=K.label,P=r.fase_plantilla,W=r.modo_configuracion;if(P==="Preventa"){Y(k,P);return}else if(W==="Especifico"){Y(k,P);return}}},re=(S,K,G)=>{const k=S.params_plantillas.find(P=>S.key==="categoria"?P.reference_id===K.value:P.id===K.value);if(k){const P=S.key,W=K.label;if(v[P](W,G),Ta.includes(P))if(D(P,W),P==="fase_plantilla"){const E=W,C=q(P,E);c({fields:["categoria","modo_configuracion","tipo_plantilla"],value:!0}),C.length>0&&c({fields:C,value:!1}),E==="Preventa"&&c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(P==="modo_configuracion"){const E=W,C=r.fase_plantilla,R=q(P,E,C);c({fields:["medio_especifico","formato_salida"],value:!0}),R.length>0&&c({fields:R,value:!1}),C==="Preventa"&&c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(P==="tipo_medio"){const E=W,C=r.modo_configuracion;r.fase_plantilla==="Venta"?C==="Especifico"?M[E].execute():N[E].execute():A[E].execute()}else if(P==="formato_salida")H[W].execute();else{const E=q(P,W);E.length>0&&c({fields:E,value:!1})}if(_a.includes(P)){let E="",C="";if(P==="formato_salida"){const R=r.modo_configuracion,F=W;C="tipo_medio",E=R==="Default"&&F==="Digital"?E="DDG":E="DRP"}else C=P,E=k.abbreviation;O[C](C,E)}Na.includes(P)&&z(S,K)}},ee=()=>{if(r){const S=r.fase_plantilla;if(S==="Preventa"){const K=r.modo_configuracion,G=g.fase_plantilla||"XX";let k=null;if(K==="Default")k=g.tipo_medio||"XXX";else{const W=r.tipo_medio;["Vallas Móviles","Camiones","Brand Riders"].includes(W)?k=g.tipo_medio||"XXX":k=g.medio_especifico||"XXX"}const P=`${G}-${k}`;m(P)}if(S==="Venta"){const K=g.fase_plantilla||"XX",G=g.tipo_plantilla||"XXX",k=g.categoria||"XX",P=g.medio_especifico||g.tipo_medio||g.modo_configuracion||"XXX",W=g.responsable_impresion||"XX",E=g.pertenencia_medio||"X",C=g.ubicacion_medio||"X",R=`${K}-${G}-${k}-${P}-${W}-${E}-${C}`;m(R)}}};return u.useEffect(()=>{ee()},[g]),{templateFields:a,getFieldsByStep:B,dropdownFunctionsUpdateClave:O,fieldsForUpdateClave:_a,resetTemplateFormData:d,fieldsWithDisableTrigger:Ta,getFieldsToDisable:q,handleOptionSelected:re,getFilteredOptions:$,dropdownFunctionsUpdateFormData:v}}const Xt=()=>{const{control:e,setValue:a}=Pe.useFormContext(),n=rt(c=>c.step),{getFieldsByStep:s,handleOptionSelected:o,getFilteredOptions:i}=Qt(a),{disabledFields:r}=ke(),l=u.useMemo(()=>s(n),[n,s]),d=c=>`El campo ${c.charAt(0).toLocaleLowerCase()+c.slice(1)} es requerido`;return l.map(c=>{const m=`step${c.step}.${c.key}`,g=c.label,p=i(c.key).map(h=>({label:h.name,value:c.key==="categoria"?h.reference_id:h.id}));return t.jsx(Pe.Controller,{name:m,control:e,rules:{required:{value:!r[c.key],message:d(g)},validate:h=>r[c.key]||h?!0:d(g)},render:({field:h,fieldState:{error:y}})=>t.jsx("div",{children:t.jsx(f.Dropdown,{label:g,value:h.value,onValueChange:w=>{h.onChange(w)},error:y==null?void 0:y.message,options:p,onOptionSelect:w=>{o(c,w,c.id)},disabled:r[c.key]||!1})})},c.id)})},ci=()=>t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:t.jsx(Xt,{})}),di=()=>t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:t.jsx(Xt,{})}),mi=()=>t.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:t.jsx(Xt,{})}),ui=({step:e})=>t.jsxs("div",{className:"tm-flex tm-min-h-[270px] tm-flex-col tm-gap-y-4",children:[e===1&&t.jsx(ci,{}),e===2&&t.jsx(di,{}),e===3&&t.jsx(mi,{})]}),pi=e=>{const a={step1:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria"],step2:["tipo_medio","formato_salida","medio_especifico"],step3:["responsable_impresion","pertenencia_medio","ubicacion_medio"]};return e.reduce((n,s)=>{const o=`step${s.step}`,i=a[o];return i&&i.includes(s.key)&&(n[o]||(n[o]={}),n[o][s.key]=""),n},{})},fi=e=>{const a={step1:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria"],step2:["tipo_medio","formato_salida","medio_especifico"],step3:["responsable_impresion","pertenencia_medio","ubicacion_medio"]},n={};return Object.keys(a).forEach(s=>{n[s]={},a[s].forEach(o=>{var r;const i=(r=e[s])==null?void 0:r[o];n[s][o]=i!==void 0?i:""})}),n},gi=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 hi(e,a){const{clave:n,paramsTipo:s,currentTemplateForEdit:o,isEditTemplate:i,setDisableField:r,setClaveParams:l,isDuplicateTemplate:d,templateFormData:c}=ke(),{tasks_api:m}=pe(),{getFieldsByStep:g,dropdownFunctionsUpdateFormData:x,templateFields:p}=Qt(),h=()=>{var M;try{const N={},A=e(),T=fi(A),{step1:X}=T,U=[];N.clave=n,X.categoria!=""&&(N.categoria=X.categoria);for(const[L,I]of Object.entries(T))for(const[V,D]of Object.entries(I)){const q={id:null,params_tipo:{id:null}};if(D!=""){const B=s[V];if(V==="categoria"){const $=p.find(z=>z.key==="categoria"),Y=(M=$==null?void 0:$.params_plantillas)==null?void 0:M.find(z=>z.reference_id===D);q.id=Y==null?void 0:Y.id}else q.id=D;q.params_tipo.id=B,U.push(q)}}return Object.keys(U).length>0&&(N.params_plantillas=U),N}catch(N){console.log(N)}},y=async M=>{var N;try{let A=null;return i?A=await m.put(`/api/plantillas/${o.id}`,{data:M}):A=await m.post("/api/plantillas",{data:M}),A.data?be(A.data):null}catch(A){throw console.error("Error en saveTemplateToStrapi:",{error:A.message,status:(N=A.response)==null?void 0:N.status}),A}},w=async M=>{var N;try{const A=Ee.stringify({filters:{plantilla:{id:M}},populate:{graph_layout:!0}},{encodeValuesOnly:!0}),T=await m.get(`/api/plantillas/plantilla-tareas-grafico?${A}`);return T.data?be(T.data.data):null}catch(A){throw console.error("Error en getTemplateWithTasks:",{error:A.message,status:(N=A.response)==null?void 0:N.status}),A}},j=async(M,N,A)=>{var T,X,U,L,I,V,D;try{const q=await w(M),B=await w(N);if(!q||!q.tarea_plantillas)return console.warn("No se encontraron tareas para duplicar en la plantilla original"),null;const $=new Map,Y=new Map;let z=1;q.tarea_plantillas.forEach(G=>{let k=null;G.start?k=A:k=-(Date.now()+z++),$.set(G.id,k)}),(X=(T=q.graph_layout)==null?void 0:T.snapshot)!=null&&X.nodes&&q.graph_layout.snapshot.nodes.forEach(G=>{const k=`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`;Y.set(G.id,k)});const re=q.tarea_plantillas.filter(G=>!G.start).map(G=>{var P,W,E,C;return{id:$.get(G.id),uuid:crypto.randomUUID(),reference_graph:G.reference_graph,texto_corto:G.texto_corto,texto_largo:G.texto_largo||null,prioridad:G.prioridad,nivel_dificultad:G.nivel_dificultad,duracion:G.duracion,start:G.start,type:G.type||"task",equipo:((P=G.equipo)==null?void 0:P.id)||null,responsable:((W=G.responsable)==null?void 0:W.id)||null,plantilla:{id:N,clave:q.clave,categoria:q.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:$.get((E=G.id_t_requerida)==null?void 0:E.id)||null,ids_t_dependientes:[],tarea_padre:$.get((C=G.tarea_padre)==null?void 0:C.id)||null,tareas:[]}});let ee=null;if(q.graph_layout){const G=B.tarea_plantillas.find(k=>k.start===!0);ee={...q.graph_layout,id:(U=B.graph_layout)==null?void 0:U.id,snapshot:{...q.graph_layout.snapshot,edges:q.graph_layout.snapshot.edges.map(k=>{if(k.source==="start")return{...k,data:{...k.data,childId:re.find(P=>P.reference_graph===k.target).id,parentId:G.id}};{const P=re.find(W=>W.reference_graph===k.target);return{...k,data:{...k.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:((I=(L=q.graph_layout.snapshot)==null?void 0:L.nodes)==null?void 0:I.map(k=>{let P={};return k.type==="start"?P={...k,data:{...k.data,tareaId:G.id}}:P={...k,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 S={graph_layout:ee,tasks:{created:re,updated:[],deleted:[]}},K=await m.post("/api/tareas/save-tareas-grafico",{data:S});if(K.data&&K.status===200){const G=await w(N),k=new Map;G.tarea_plantillas.forEach(E=>k.set(E.reference_graph,E.id));let P=G.graph_layout;return(!((V=P==null?void 0:P.snapshot)!=null&&V.nodes)||P.snapshot.nodes.length===0)&&(console.log("Graph layout vacío, reconstruyendo desde el original..."),P=ee),(D=P==null?void 0:P.snapshot)!=null&&D.nodes&&(P.snapshot.nodes=P.snapshot.nodes.map(E=>{var _;const C={...E,position:E.position||{x:0,y:0}},R=C.id,F=k.get(R);if(F)return{...C,data:{...C.data,id:F,tareaId:F}};if((_=C.data)!=null&&_.tareaId){const Q=G.tarea_plantillas.find(Z=>Z.reference_graph===R);if(Q)return{...C,data:{...C.data,id:Q.id,tareaId:Q.id}}}return C})),await m.put(`/api/plantillas/${N}`,{data:{graph_layout:P}}),await w(N)}return null}catch(q){throw console.error("Error al duplicar las tareas de la plantilla:",q),q}},b=async()=>{var M,N;try{let A=h();const T=await y(A);if(!T)return{success:!1,message:"No se pudo guardar el flujo de trabajo en Strapi",error:"templateData es null"};const X=Ee.stringify({filters:{id:{$eq:T.id}},populate:{tarea_plantillas:{filters:{start:{$eq:!0}}}}},{encodeValuesOnly:!0}),{data:U}=await m.get(`/api/plantillas?${X}`),I=be(U.data)[0].tarea_plantillas[0].id;if(d&&(o!=null&&o.id))try{const D=await j(o.id,T.id,I);return D?{success:!0,message:"Flujo de trabajo duplicado completamente con todas sus tareas",data:D}:{success:!0,message:"Flujo de trabajo creado, pero no se pudieron duplicar las tareas",data:await w(T.id)}}catch(D){return console.error("Error al duplicar tareas:",D),{success:!0,message:"Flujo de trabajo creado, pero hubo un error al duplicar las tareas",data:await w(T.id)}}const V=await w(T.id);return V?{success:!0,message:"Flujo de trabajo creado y sincronizado completamente",data:V}:{success:!1,message:"No se pudieron obtener los datos completos del flujo de trabajo",error:"completeData es null"}}catch(A){const T=gi(((N=(M=A==null?void 0:A.response)==null?void 0:M.data)==null?void 0:N.error)||A);return console.error("Error al guardar el flujo de trabajo: ",{level:T.failureLevel,message:T.errorMessage,technicalDetails:T.technicalDetails}),{success:!1,message:T.errorMessage||"Error al guardar el flujo de trabajo",error:T.technicalDetails||A.message}}},v=()=>{const M=o==null?void 0:o.params_plantillas;if(!(M!=null&&M.length))return;let N={};[1,2,3].forEach(T=>{const X=`step${T}`;N[X]={},g(T).forEach(L=>{var V;const I=M.find(D=>D.params_tipo.key===L.key);if(I){let D=null;if(L.key==="categoria"){const q=(V=L.params_plantillas)==null?void 0:V.find(B=>B.id===I.id);D=(q==null?void 0:q.reference_id)||I.id}else D=I.id;N[X][L.key]=D}})}),a(N)},O=()=>{var N;const M=o==null?void 0:o.params_plantillas;if(M!=null&&M.length)for(const A of M){const{params_tipo:{id:T,key:X},name:U,id:L}=A,I=p.find(D=>D.key===X),V=(N=I==null?void 0:I.params_plantillas)==null?void 0:N.find(D=>D.id===L);x[X]&&x[X](U,T),V&&l({field:X,value:V.abbreviation})}},H=()=>{try{const{fase_plantilla:M,modo_configuracion:N,formato_salida:A,tipo_medio:T}=c;if(M==="Venta")r({fields:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria","tipo_medio"],value:!1}),N==="Default"?(r({fields:["tipo_medio","formato_salida"],value:!1}),r({fields:["medio_especifico"],value:!0}),["Sitios Fijos","Vallas Móviles","Indoors"].includes(T)||r({fields:["formato_salida","medio_especifico"],value:!0}),A==="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(T)&&r({fields:["formato_salida","medio_especifico"],value:!1}),["Vallas Móviles"].includes(T)&&(r({fields:["formato_salida"],value:!1}),r({fields:["medio_especifico"],value:!0})),["Camiones","Brand Riders"].includes(T)&&r({fields:["formato_salida","medio_especifico"],value:!0}),A==="Digital"?(r({fields:["responsable_impresion"],value:!0}),r({fields:["pertenencia_medio","ubicacion_medio"],value:!1})):r({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!1}));else if(r({fields:["modo_configuracion"],value:!1}),r({fields:["tipo_plantilla","categoria"],value:!0}),N=="Default"){const 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(T)?(r({fields:["formato_salida"],value:!0}),r({fields:["medio_especifico"],value:!1})):r({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!0})}catch(M){console.error("Error al aplicar reglas de habilitar y deshabilitar campos",M)}};return u.useEffect(()=>{(i||d)&&o&&(v(),O())},[i,d,o]),u.useEffect(()=>{(i||d)&&c&&H()},[i,c,d]),{savePlantilla:b,getTemplateWithTasks:w}}const xi=()=>{const{watch:e,getValues:a}=Pe.useFormContext(),{templateFormData:n,isDuplicateTemplate:s,currentTemplateForEdit:o}=ke(),[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&&s&&o){const x=setTimeout(()=>{l.current=a(),d.current={...n},c.current=!0,r(!1)},500);return()=>clearTimeout(x)}},[s,o,a,n]),u.useEffect(()=>{if(l.current&&d.current&&c.current){const x=a(),p=n,h=JSON.stringify(x)!==JSON.stringify(l.current),y=JSON.stringify(p)!==JSON.stringify(d.current);r(h||y)}},[m,n,a]),{hasChanges:i,resetChanges:()=>{l.current=null,d.current=null,c.current=!1,r(!1)}}},bi=({onReset:e})=>{const{hasChanges:a,resetChanges:n}=xi(),{setHasFormChanges:s}=ke();return u.useEffect(()=>{s(a)},[a,s]),u.useEffect(()=>{e(n)},[e,n]),null},yi=({isOpen:e,onClose:a})=>{const{step:n,nextStep:s,prevStep:o,onStepChange:i}=li({limit:3}),r=rt(P=>P.reset),{templateFields:l,resetTemplateFormData:d}=Qt(),{clave:c,resetClave:m,resetDisabledFields:g,isEditTemplate:x,setIsEditTemplate:p,refetch:h,isDuplicateTemplate:y,hasFormChanges:w,setIsDuplicateTemplate:j,setCurrentTemplateForEdit:b}=ke(),{openTemplate:v}=ze(),[O,H]=u.useState(!1),[M,N]=u.useState(""),[A,T]=u.useState(!1),X=u.useRef(null),U=P=>{X.current=P},L=u.useMemo(()=>pi(l),[l]),I=n===1,V=n===3,D=I?"Cancelar":"Atrás",q=Pe.useForm({mode:"onChange",defaultValues:L}),{trigger:B,reset:$,clearErrors:Y,getValues:z}=q,{savePlantilla:re}=hi(z,$),ee=u.useRef(!1);u.useEffect(()=>{e&&(r(),ee.current=!1)},[e,r]),u.useEffect(()=>{e&&!x&&!y&&!ee.current&&($(L),d(),ee.current=!0)},[e,x,y,$,L,d]);const S=async()=>{if(await B()){if(n===3){if(!w&&y){N("Ya existe un proceso con éstos parámetros. Modifica al menos uno para poder duplicarlo."),T(!0);return}try{H(!0);const W=await re();if(W.success){const E=W.data;if(k(),G(),T(!1),!x)try{await v({template:E,statusTemplate:_e.NEW})}catch(C){console.warn("La plantilla se creó exitosamente pero hubo un problema al abrirla:",C)}h()}else{const{error:E}=W;N(E),T(!0)}}catch(W){console.error("Error inesperado al guardar la plantilla:",W);return}finally{H(!1)}}s()}},K=()=>{N(""),T(!1)},G=()=>{Y(),$(L),d(),g(),m(),K(),p(!1),j(!1),b(null),X.current&&X.current()},k=()=>{G(),ee.current=!1,a(),console.log("cerrar modal")};return O?t.jsx(lt,{isLoading:O}):t.jsxs(Pe.FormProvider,{...q,children:[t.jsx(bi,{onReset:U}),t.jsx(f.Modal,{isOpen:e,closeAtCancel:!1,onSuccess:S,cancelButtonText:D,successButtonText:V?x?"Guardar":"Crear":"Continuar",onCancel:I?k:o,onClose:k,size:"sm",iconConfig:{icon:ne.faFilePen},title:x?"Editar flujo de trabajo":"Nuevo flujo de trabajo",children:t.jsxs(f.Modal.Body,{children:[t.jsx("div",{className:"tm-flex tm-w-full tm-overflow-x-auto tm-pb-16 tm-pt-12",children:t.jsx("div",{className:"tm-flex tm-w-full",style:{justifyContent:"center",minWidth:"fit-content"},children:t.jsx(f.Stepper,{currentStep:n-1,onStepChange:P=>i(P+1),steps:[{title:"Paso 1",description:"INFORMACIÓN"},{title:"Paso 2",description:"DETALLES"},{title:"Paso 3",description:"PRODUCCIÓN"}]})})}),t.jsx("div",{className:"tm-flex tm-w-full tm-justify-center",children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-gap-0",children:[t.jsx("div",{className:"tm-bg-canvas-default tm-rounded-[100px] tm-p-2",style:{width:"fit-content",minWidth:"fit-content"},children:t.jsx("div",{className:"tm-font-bold tm-py-1 tm-p-[90px]",children:c})}),t.jsx("div",{className:"tm-bg-blue-500 tm-text-white tm-px-3 tm-py-1.5 tm-font-medium tm--mt-4",style:{borderRadius:"100px",fontSize:"10px"},children:"CLAVE"})]})}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-4 tm-p-16",children:[A&&t.jsx(f.Alert,{open:!0,color:"danger",message:M,className:"tm-mb-6",onClose:K}),t.jsx(ui,{step:n})]})]})})]})},ji=({isOpen:e,onClose:a,replaceTemplate:n})=>t.jsx(t.Fragment,{children:t.jsx(f.Modal,{isOpen:e,closeAtCancel:!1,cancelButtonText:"Cancelar",successButtonText:"Abrir",onCancel:a,onClose:a,onSuccess:n,size:"sm",iconConfig:{icon:de.faExclamationTriangle},title:"Límite de flujos de trabajo",children:t.jsx(f.Modal.Body,{children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-overflow-auto tm-w-full tm-p-4 tm-gap-8",children:[t.jsx("div",{className:"tm-flex tm-justify-center tm-w-full",style:{minWidth:"fit-content"},children:t.jsx("div",{className:"tm-flex tm-justify-center tm-items-center tm-gap-[10px] tm-rounded-full tm-p-16",style:{backgroundColor:"#EBEEF9"},children:t.jsx(f.Icon,{name:de.faExclamationTriangle,size:"lg",color:"blue"})})}),t.jsx("div",{className:"tm-text-center tm-mt-6",children:t.jsx("h2",{className:"tm-text-[24px] tm-font-bold tm-text-brand tm-leading-tight",children:"¿Quieres continuar?"})}),t.jsx("div",{className:"tm-text-center tm-mt-2",children:t.jsx("div",{className:"tm-text-[12px] tm-font-normal tm-text-[#6B6B6B]",children:"Ya tienes 5 flujos de trabajo abiertos, si abres uno nuevo, se cerrará automáticamente el que lleva más tiempo sin usarse."})})]})})})}),wi=We.create(e=>({cachedTemplate:null,canCreateTemplate:!1,setCachedTemplate:a=>e({cachedTemplate:a}),clearCachedTemplate:()=>e({cachedTemplate:null}),setCanCreateTemplate:a=>{const n=!(a<5);e({canCreateTemplate:n})}})),vi=({isOpen:e,onClose:a,discardChanges:n,saveAndExit:s})=>t.jsx("div",{children:t.jsx(f.Modal,{isOpen:e,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Guardar y salir",onCancel:a,onClose:a,onSuccess:s,size:"sm",iconConfig:{icon:de.faExclamationTriangle},title:"Cambios sin guardar",children:t.jsx(f.Modal.Body,{children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-overflow-auto tm-w-full tm-p-4 tm-gap-8",children:[t.jsx("div",{className:"tm-flex tm-justify-center tm-w-full",style:{minWidth:"fit-content"},children:t.jsx("div",{className:"tm-flex tm-justify-center tm-items-center tm-gap-[10px] tm-rounded-full tm-p-16 tm-bg-canvas-default",children:t.jsx(f.Icon,{name:de.faSave,size:"lg",color:"brand"})})}),t.jsx("div",{className:"tm-flex tm-flex-col tm-mx-6",children:t.jsx(f.Alert,{open:!0,variant:"outlined",color:"danger",showCloseButton:!1,message:"Tienes cambios sin guardar en este flujo de trabajo",title:"No has guardado",className:"tm-mt-8"})}),t.jsx("div",{className:"tm-text-center tm-mt-5",children:t.jsx("h2",{className:"tm-text-[24px] tm-font-bold tm-text-brand",children:"¿Qué deseas hacer antes de salir?"})}),t.jsx("div",{className:"tm-text-center tm-mt-1",children:t.jsx("div",{className:"tm-text-[12px] tm-font-normal tm-text-[#6B6B6B]",children:"Si sales ahora sin guardar se perderán los cambios actuales."})}),t.jsx("div",{className:"tm-flex tm-justify-center tm-mt-4",children:t.jsx(f.Button,{size:"xs",color:"secondary",onClick:()=>{n(),a()},children:"Descartar cambios"})})]})})})}),vs=({isOpen:e,onClose:a,publishTemplate:n})=>t.jsx(f.Modal,{isOpen:e,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Confirmar",onCancel:a,onClose:a,onSuccess:n,size:"sm",iconConfig:{icon:de.faArrowUp},title:"Publicar",children:t.jsx(f.Modal.Body,{children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-overflow-auto tm-w-full tm-p-8 tm-gap-16",children:[t.jsx("div",{className:"tm-flex tm-justify-center tm-w-full",style:{minWidth:"fit-content"},children:t.jsx(f.Icon,{name:de.faArrowUp,size:"lg",color:"blue",background:!0,padding:"lg"})}),t.jsx("div",{className:"tm-text-center",children:t.jsx("h2",{className:"tm-text-[24px] tm-font-bold tm-text-[#3658C1] tm-leading-tight",children:"¿Estás seguro de que deseas publicar este proceso?"})}),t.jsx("div",{className:"tm-text-center",children:t.jsx("div",{className:"tm-text-[12px] tm-font-normal tm-text-[#6B6B6B]",children:"Al publicar este proceso, estará disponible para su uso en los flujos correspondientes. Asegúrate de que toda la información sea correcta antes de continuar."})})]})})}),_i=()=>{const e="grid",a="create-edit",n=u.useRef(null),{isOpenModalLimit:s,setIsOpenModalLimit:o,setOpenModalCreateTemplate:i,openModalCreateTemplate:r,setOpenModalUnsavedChanges:l,openModalUnsavedChanges:d,openModalPublishTemplate:c,setOpenModalPublishTemplate:m,setCurrentTemplateForEdit:g,setIsDuplicateTemplate:x,setIsEditTemplate:p}=ke(),{removeTemplateStates:h}=it(),{mode:y,setMode:w,setViewMode:j,getViewMode:b}=ve(),{setCanCreateTemplate:v,canCreateTemplate:O}=wi(),H=y===e,{screens:M,get:N,delete:A,activeTemplate:T,activateTemplate:X,reorderingTemplates:U,replaceTemplate:L,saveTemplateChanges:I,publishTemplate:V,loadingPublishTemplate:D,loadingSaveChanges:q}=ze(),B=178,[$,Y]=u.useState([]),[z,re]=u.useState([]),[ee,S]=u.useState(null),[K,G]=u.useState(!1),k=T!=null&&T.id?b(T.id):"readonly";u.useEffect(()=>{const J=()=>{if(!n.current)return;const te=n.current.offsetWidth;let fe=0;const ce=[],xe=[],we=10,ye=n.current.querySelector("button:not([data-screen])"),Oe=n.current.querySelector(".tm-mx-1");let Ne=0;ye&&(Ne+=ye.getBoundingClientRect().width),Oe&&M.length>0&&(Ne+=Oe.getBoundingClientRect().width,Ne+=we);const $e=(me,ge)=>{const Le=ge?54:0,ct=(me==null?void 0:me.length)*8;return Math.max(80,ct+40+Le)},ue=te-B-Ne;M.forEach((me,ge)=>{const Ie=!!(me.isNew||me.badgeLabel),he=$e(me.clave,Ie),Be=ge>0?we:0,Le=he+Be;fe+Le<=ue?(ce.push(me),fe+=Le):xe.push(me)}),Y(ce),re(xe)},se=()=>{const te=M.length;v(te)};return M.length>0&&(J(),se(),window.addEventListener("resize",J)),()=>{window.removeEventListener("resize",J)}},[M,y]);const P=J=>J.estatus===_e.DIRTY||J.estatus===_e.NEW,W=async J=>{P(J)?(S(J.id),l(!0)):await A(J.id)},E=()=>m(!0),C=async()=>{await A(ee),await h(ee)},R=async()=>{await I(!1)},F=async()=>{await I()},_=()=>{var se,te;const J=(te=(se=T==null?void 0:T.graph_layout)==null?void 0:se.snapshot)==null?void 0:te.nodes.length;G(()=>J-1>=1)};u.useEffect(()=>{_()},[T,k]);const Q=()=>!((T==null?void 0:T.estatus)==_e.IDLE&&K&&T.estatusFromStrapi!==Ae.PUBLISHED),Z=()=>{var se;const{nodes:J}=(se=T==null?void 0:T.graph_layout)==null?void 0:se.snapshot;return J==null?void 0:J.some(te=>te.type!=="start"&&(te==null?void 0:te.data.tarea_padre)===null&&(te==null?void 0:te.data.id_t_requerida)===null)},ae=()=>(T==null?void 0:T.estatus)===_e.IDLE||Z()?!0:!K,ie=async()=>{await V(T.id)};return q||D?t.jsx(lt,{isLoading:q||D}):t.jsxs("div",{className:"tm-flex tm-gap-4 tm-justify-between tm-items-center tm-flex-wrap",children:[r&&t.jsx(yi,{isOpen:r,onClose:()=>i(!1)}),s&&t.jsx(ji,{isOpen:s,onClose:()=>o(!1),replaceTemplate:L}),d&&t.jsx(vi,{isOpen:d,onClose:()=>l(!1),discardChanges:C,saveAndExit:F}),c&&t.jsx(vs,{isOpen:c,onClose:()=>m(!1),publishTemplate:ie}),t.jsxs("div",{className:"tm-flex tm-gap-2.5 tm-items-center tm-justify-between tm-flex-1 tm-flex-wrap",ref:n,children:[t.jsxs("div",{className:"tm-flex tm-gap-2.5 tm-items-center tm-justify-start tm-flex-1 tm-flex-wrap",children:[t.jsx(f.Button,{size:"xs",color:H?"primary":"secondary",onClick:()=>w(e),children:"Listado de flujos"}),M.length>0&&t.jsx(f.Separator,{vertical:!0,className:"tm-mx-1"}),M.filter(J=>$.some(se=>se.clave===J.clave)).map(J=>{const se=(T==null?void 0:T.clave)===J.clave&&y===a;return t.jsxs(f.Button,{"data-screen":J.clave,size:"xs",onClick:async()=>{await X(J),w(a,J.id)},color:se?"primary":"secondary",leftSlot:Se.faFilePen,badgeColor:P(J)?"warning":void 0,onClickRightSlot:()=>W(J),rightSlot:Se.faXmark,children:[J.clave," ",J.status]},J.id)})]}),z.length>0&&t.jsx(f.Popup,{absolute:!0,rightSlot:Se.faAngleDown,label:`${z.length}+`,size:"xs",color:"secondary",children:t.jsx("div",{className:"tm-py-2 tm-gap-4",style:{minWidth:"280px"},children:t.jsx(f.List,{icon:Se.faFilePen,items:z.map(J=>({id:J.id,label:J.clave})),className:"tm-p-8 tm-gap-4",onClick:async J=>{const se=await N(J.id);await U(se.id),await X(se),w("create-edit",se.id)}})})})]}),y===a?t.jsx("div",{className:"tm-flex tm-gap-4 tm-items-center tm-justify-end tm-flex-wrap",children:T.estatusFromStrapi!==Ae.PUBLISHED&&t.jsxs(t.Fragment,{children:[t.jsx(f.Button,{color:"secondary",size:"xs",leftSlot:Se.faArrowUp,disabled:Q(),onClick:E,children:"Publicar"}),k=="readonly"&&t.jsx(f.Button,{size:"xs",color:"primary",leftSlot:Se.faEdit,onClick:()=>(T==null?void 0:T.id)&&j(T.id,"edit"),children:"Editar"}),k==="edit"&&t.jsx(f.Button,{size:"xs",color:"primary",leftSlot:Se.faSave,onClick:R,disabled:ae(),children:"Guardar"})]})}):t.jsx(f.Button,{disabled:O,tooltip:O?"Límite de 5 plantillas con cambios sin guardar. Guarda y cierra alguna para crear una nueva.":"",leftSlot:Se.faPlus,size:"xs",color:"primary",onClick:()=>{g(null),x(!1),p(!1),i(!0)},children:"Nuevo flujo"})]})},Ti=({isOpen:e,onClose:a,deleteTemplate:n})=>t.jsx(f.AlertDialog,{title:"Eliminar Borrador",iconContent:de.faBan,heading:"¿Estás seguro?",subheading:"Si eliminas este borrador, también se borrarán todas sus tareas y conexiones con otros borradores.",icon:de.faBan,label:"Escribe 'Eliminar' para continuar",confirmationText:"Eliminar",isOpen:e,onClose:a,onConfirm:n,placeholder:""}),Ni=()=>{const{viewMode:e,setRefetch:a,openModalPublishTemplate:n,setOpenModalPublishTemplate:s,currentTemplateId:o,setOpenModalDeleteTemplate:i,openModalDeleteTemplate:r}=ke(),{publishTemplate:l,deleteTemplate:d}=ze(),{debouncedSearch:c,filters:m}=cs("templates-container"),g=e==="list",[x,p]=u.useState(1),h=9,{data:y,isLoading:w,isFetching:j,refetch:b}=js({page:x,pageSize:h,search:c,filters:m});u.useEffect(()=>{a(b)},[]),u.useEffect(()=>{p(1)},[m,c]);const{users:v}=st(),{getImageOBP:O}=pe(),H=T=>{if(!(T!=null&&T.email))return"";const X=v==null?void 0:v[T==null?void 0:T.email];return X!=null&&X.image?O(X==null?void 0:X.image):""},M=u.useMemo(()=>{try{return!y||!v?[]:y.data.map(T=>{const X=H((T==null?void 0:T.updated_by)||(T==null?void 0:T.created_by));return{...T,updated_by:{...T.updated_by,image:X}}})}catch(T){return console.error("Error al mapear las plantillas:",T),[]}},[y,v]),N=async()=>{await l(o),await b()},A=async()=>{await d(o),await b()};return w||j?t.jsx(lt,{isLoading:w||j}):t.jsxs("div",{className:"tm-flex tm-flex-col tm-justify-between tm-gap-y-4 tm-h-full",children:[t.jsx(vs,{isOpen:n,onClose:()=>s(!1),publishTemplate:N}),t.jsx(Ti,{isOpen:r,onClose:()=>i(!1),deleteTemplate:A}),t.jsx("div",{className:`tm-grid tm-gap-12 ${g?"tm-grid-cols-1":"tm-grid-cols-1 md:tm-grid-cols-2 lg:tm-grid-cols-3"}`,children:M.map(T=>t.jsx(gs,{fullWidth:g,template:T},T.id))}),t.jsx("div",{children:t.jsx(f.Pagination,{pageSize:h,pageCount:y==null?void 0:y.meta.pagination.pageCount,currentPage:x,onPageChange:T=>p(T)})})]})},_s=()=>{var r,l,d,c;const e="grid",a="create-edit",{mode:n}=ve(),s=n===e,o=n===a,i=qe(m=>m.activeTemplate);return t.jsxs("div",{className:"tm-h-full tm-flex tm-flex-col tm-gap-y-6",children:[t.jsx(_i,{}),s&&t.jsx(Ni,{}),o&&t.jsx(ii,{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)||[]})]})},Ci=()=>({header:t.jsx(hr,{}),body:t.jsx(_s,{})});function Si(e){const{users:a}=po(),{tasks_api:n,getImageOBP:s}=pe(),o=u.useMemo(()=>a.data?a.data.map(l=>{const{image:d,id:c,name:m}=l,g=s(d);return{value:c,label:m,icon:g}}):[],[a.data]),i=async l=>{const d=Ee.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 be(c.data).flatMap((g,x)=>{const p={id:`group-${x+1}`,label:g.label,value:`group-${x+1}`,isGroupTitle:!0},h=g.params_plantillas.map(y=>({id:y.id,label:y.name,value:y.id,checked:!1,icon:"CheckCircleOutlined",iconColor:"blue"}));return[p,...h]})},r=le.useQuery({queryKey:["paramsPlantilla"],queryFn:()=>i(n),enabled:e==="templates-container",staleTime:1e3*60*30});return{userOptions:o,paramsPlantillasOptions:r.data||[]}}const Ei={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"}},Pi={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"}},Ai={"templates-container":Ei,"teams-container":Pi,"kanban-general":null,"lista-campanias":null,"kanban-campania":null},Ii=e=>({inputFilters:Ai[e]||null}),Di=e=>{const{inputFilters:a}=Ii(e),{userOptions:n,paramsPlantillasOptions:s}=Si(e);return{inputFilters:u.useMemo(()=>{if(a&&n.length>0&&s.length>0){const i=a;return[{...i.estatus},{...i.publication_date},{...i.propietario,options:n},{...i.created_by,options:n},{...i.updated_by,options:n},{...i.params_plantillas,options:s}]}return null},[e,a,n,s])}};function Fi(){const{setFilters:e}=gt(),{refetch:a}=ke();return{handleApplyFilters:s=>{let o={...s};o=Object.fromEntries(Object.entries(o).filter(([i,r])=>!(r===""||r===null||Array.isArray(r)&&r.length===0))),"publication_date"in o&&o.publication_date!==""&&(o={...o,publication_date:Et(o.publication_date).format("YYYY-MM-DD")}),e(o,"templates-container"),a&&a()}}}const Ea="templates-container";function Mi(){const{mode:e}=ve(),{inputFilters:a}=Di(Ea),{handleApplyFilters:n}=Fi(),{viewMode:s,setViewMode:o}=ke();return e!=="grid"?null:t.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-2.5 md:tm-flex-nowrap",children:[t.jsx(ls,{path:Ea}),t.jsxs("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-x-8 md:tm-flex-nowrap",children:[a&&t.jsx(f.Filters,{filters:a,onApply:n}),t.jsx(f.Button,{size:"xs",color:"secondary",icon:s==="list"?ne.faGrid2:ne.faList,className:"tm-min-w-fit",onClick:()=>o(s==="list"?"grid":"list")})]})]})}const Pt={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()},Yt="Project Manager",Ts=({open:e,handleChange:a,children:n,title:s="¿Estás seguro?",onConfirm:o,contentLabel:i="",confirmLabel:r="Aceptar",cancelLabel:l="Regresar",isLoading:d=!1})=>t.jsx(f.Modal,{isOpen:e,onClose:()=>a(!1),onCancel:()=>a(!1),onSuccess:o,size:"xs",title:s,disableEscapeClose:!0,disableOutsideClick:!0,disableOutsideTab:!0,children:t.jsxs(f.Modal.Body,{children:[t.jsx(f.Text,{children:i}),n&&n]})}),ki=({member:e,level:a,isUpdate:n=!1,addHandler:s,updateHandler:o,removeHandler:i,updateMemberHandler:r})=>{var L,I,V;const{users:l,isLoading:d}=ht(),{users:c,isLoading:m}=st(),{getImageOBP:g}=pe(),[x,p]=u.useState(!1),[h,y]=u.useState(n?e:{...Pt,miembro_padre:a>1?e:null}),[w,j]=u.useState(null),[b,v]=u.useState({id:0,nombre:"",email:""}),[O,H]=u.useState(!1);u.useEffect(()=>{var D;j(c==null?void 0:c[(D=h==null?void 0:h.idUser)==null?void 0:D.email])},[h,c]),u.useEffect(()=>{e&&y({...e,miembro_padre:a>1?e.miembro_padre:null})},[e,a]);const M=u.useMemo(()=>(l||[]).map(D=>{var $,Y;const q=c==null?void 0:c[D.email??""],B=q!=null&&q.image?g(q.image):"";return{...D,label:D.name,value:D.id,subtitle:D.email??"",avatar:((Y=($=D.name)==null?void 0:$.slice(0,2))==null?void 0:Y.toUpperCase())??"",avatarUrl:B}}),[l,c,g]),N=()=>{p(!1),v({id:0,nombre:"",email:""})},A=({id:D,name:q,email:B})=>{const $={...h,idUser:{...h.idUser,id:D,nombre:q,email:B}};y($),o($),v({id:D,nombre:q,email:B})},T=async()=>{if(!b.nombre&&!b.email){N();return}try{h.id&&r({user_id:b.id,miembro_id:e.id});const D={...h,idUser:{...h.idUser,id:b.id,nombre:b.nombre,email:b.email}};y(D),o(D),j(c==null?void 0:c[b.email]),N()}catch(D){f.toast.error(D instanceof Error?D.message:"Error al actualizar el colaborador")}},X=()=>{const D={...Pt,uid:new Date().getTime()+Math.floor(Math.random()*1e3),miembro_padre:e,miembros:[]};s(D)},U=()=>{i(e),H(!1)};return m||d?null:t.jsxs("div",{className:"tm-flex tm-items-baseline tm-justify-between",children:[O&&t.jsx(Ts,{open:O,handleChange:H,onConfirm:U,contentLabel:"Estás eliminando el colaborador seleccionado"}),t.jsxs("div",{className:"tm-flex tm-flex-1 tm-justify-between tm-gap-y-4 tm-mb-2",children:[t.jsxs("div",{children:[t.jsx("div",{className:"tm-flex tm-items-center tm-gap-x-6 tm-mb-2",children:(L=h==null?void 0:h.idUser)!=null&&L.email&&!x?t.jsxs(t.Fragment,{children:[t.jsx(De,{size:"m",alt:((I=h==null?void 0:h.idUser)==null?void 0:I.nombre)??"Avatar",imageUrl:w!=null&&w.image?g(w.image):""}),t.jsx("p",{className:"tm-text-body-sm-regular tm-font-body-sm-regular tm-leading-body-sm-regular tm-tracking-body-sm",children:(V=h==null?void 0:h.idUser)==null?void 0:V.nombre})]}):t.jsx(f.Dropdown,{placeholder:"Seleccionar colaborador",options:M,valueName:"name",idName:"id",listVariant:"user",absolute:!0,closeOnClickOutside:!0,searchable:!0,searchPlaceholder:"Buscar colaborador...",onOptionSelect:D=>{A({id:D.id,name:D.name,email:D.email})}})}),t.jsx(f.Button,{onClick:X,leftSlot:ne.faPlus,size:"xxs",color:"tertiary",children:"Añadir colaborador"})]}),t.jsxs("div",{className:"tm-flex tm-gap-x-4",children:[x?t.jsxs(t.Fragment,{children:[t.jsx(f.Button,{onClick:N,icon:ne.faXmark,size:"xs",color:"secondary",tooltip:"Cancelar"}),t.jsx(f.Button,{onClick:T,icon:Ve.faCheck,size:"xs",color:"primary",tooltip:"Guardar"})]}):t.jsx(f.Button,{onClick:()=>p(!0),icon:ne.faPencil,size:"xs",color:"tertiary",tooltip:"Editar"}),t.jsx(f.Button,{onClick:()=>H(!0),icon:ne.faTrash,size:"xs",color:"destructive",tooltip:"Eliminar"})]})]})]})},Ns=({members:e,level:a=1,isUpdate:n=!1,setData:s})=>{const o=()=>{s(i=>({...i,miembros:[...i.miembros,{...Pt,uid:new Date().getTime()+Math.floor(Math.random()*1e3)}]}))};return t.jsxs("div",{children:[(e==null?void 0:e.length)===0&&a===1&&t.jsx("div",{className:"tm-flex tm-justify-end",children:t.jsx(f.Button,{size:"xxs",color:"tertiary",leftSlot:Ve.faPlus,onClick:o,children:" Agregar miembro del equipo "})}),(e==null?void 0:e.length)>0&&(e==null?void 0:e.map(i=>t.jsx(Oi,{isUpdate:n,member:i,level:a,setData:s},i.uid)))]})},Oi=({member:e,level:a,isUpdate:n=!1,setData:s})=>{const o=c=>{s(m=>{if(!c.miembro_padre)return{...m,miembros:[...m.miembros,c]};const g=x=>x==null?void 0:x.map(p=>p.uid===c.miembro_padre.uid?{...p,miembros:[...p.miembros||[],c]}:p.miembros&&p.miembros.length>0?{...p,miembros:g(p.miembros)}:p);return{...m,miembros:g(m.miembros)}})},i=c=>{s(m=>{const g=x=>x.map(p=>p.uid===c.uid?(p.miembros&&p.miembros.length>0&&p.miembros.forEach(h=>{h.miembro_padre=c}),{...c,miembros:p.miembros||[]}):p.miembros&&p.miembros.length>0?{...p,miembros:g(p.miembros)}:p);return{...m,miembros:g(m.miembros)}})},r=c=>{var g;const m=[];return c.id&&m.push(c.id),(g=c.miembros)!=null&&g.length&&c.miembros.forEach(x=>{m.push(...r(x))}),m},l=c=>{s(m=>{const g=r(c),x=h=>h.filter(y=>y.uid!==c.uid).map(y=>({...y,miembros:y.miembros?x(y.miembros):[]})),p=m.miembros_actualizar.filter(h=>!g.includes(h.miembro_id));return{...m,miembros:x(m.miembros),miembros_eliminar:[...m.miembros_eliminar,...g],miembros_actualizar:p}})},d=c=>{s(m=>m.miembros_actualizar.some(x=>x.miembro_id===c.miembro_id)?m:{...m,miembros_actualizar:[...m.miembros_actualizar,c]})};return t.jsxs("div",{"data-id":e.uid,style:{paddingLeft:a===1?0:"30px",marginTop:a===1?"15px":"0px",paddingBottom:"5px"},children:[t.jsx(ki,{isUpdate:n,level:a,member:e,addHandler:o,updateHandler:i,removeHandler:l,updateMemberHandler:d}),Array.isArray(e.miembros)&&e.miembros.length>0&&t.jsx(Ns,{isUpdate:n,members:e.miembros,level:a+1,setData:s})]},e.uid)};function Pa(e){var l;const a=e.miembros;if(!(a!=null&&a.length))return e;const[n,...s]=a,o=n.miembros??[],i=new Set;for(const d of s){const c=(l=d.idUser)==null?void 0:l.id;typeof c=="number"&&c>0&&i.add(c)}const r=o.filter(d=>{var m;const c=(m=d.idUser)==null?void 0:m.id;return typeof c!="number"||c<=0?!0:!i.has(c)}).map(d=>({...d,esEncargado:!1,miembros:[],miembro_padre:null}));return{...e,miembros:[{...n},...r,...s]}}function Cs(e){const a=e??[],n=a.filter(s=>s.esEncargado);return n.length>0?n:a}const Li=()=>"#"+Math.floor(Math.random()*16777215).toString(16),Bi=({search:e,filters:a})=>{const n={};return e!=null&&e.trim()&&(n.nombre={$containsi:e.trim()}),a!=null&&a.createdAt&&(n.createdAt={$eq:a.createdAt}),n},Ri=({items:e})=>{if(!e)return{members:[],allMembers:[]};const a={};for(const r of e)a[r.uid]=r;const n=[],s=new Set,o=r=>{const l={...r};if(l.id&&(l.uid=l.id),l.uid&&!s.has(l.uid)&&(n.push(l),s.add(l.uid)),!l.miembros)return l;const d=l.miembros.map(c=>{const m={...c};m.id&&(m.uid=m.id);const g=a[m.uid];return o(g||m)}).filter(Boolean);return{...l,miembros:d}};return{members:e.filter(r=>r.miembro_padre===null).map(o),allMembers:n}},qi=({items:e})=>e?e.map(a=>{const n=Ri({items:a.miembros});return{...a,integrantes:n.allMembers.length,miembros:n.members,miembros_planos:n.allMembers,miembros_eliminar:[],miembros_actualizar:[]}}):[],zi=async({tasks_api:e,page:a=1,pageSize:n=10,search:s="",filters:o={}})=>{const i=Ee.stringify({filters:Bi({search:s,filters:o}),populate:hs(),sort:["createdAt:asc"],pagination:{page:a,pageSize:n}},{encodeValuesOnly:!0}),r=await e.get(`/api/equipos?${i}`);return r.data?{data:be(r.data.data),meta:r.data.meta}:{data:[],meta:{pagination:{page:a,pageSize:n,pageCount:0,total:0}}}},$i=({page:e=1,pageSize:a=10,search:n="",filters:s={}})=>{const{tasks_api:o}=pe();return le.useQuery({queryKey:["teams",e,a,n,s],queryFn:()=>zi({tasks_api:o,page:e,pageSize:a,search:n,filters:s}),staleTime:1e3*60*60*24,placeholderData:le.keepPreviousData,select:i=>({data:qi({items:(i==null?void 0:i.data)||[]}),meta:i==null?void 0:i.meta})})},At=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(At):[]}),Ss=()=>{const{tasks_api:e}=pe(),a=le.useQueryClient(),n=async x=>{const p=Pa(x),h={...p,id:void 0,miembros:p.miembros.map(At)};return(await e.post("/api/registrar-equipo-miembros",{data:h})).data},s=async x=>(await e.delete(`/api/equipos/${x}`)).data,o=async(x,p)=>{const h=Pa(p),y={...h,id:void 0,miembros:h.miembros.map(At)};return(await e.patch(`/api/actualizar-equipo-miembros/${x}`,{data:y})).data},i=async(x,p,h)=>{const y=await e.put(`/api/miembros/${x}`,{data:{[p]:h}});if(!y.data)throw new Error("Error al actualizar el miembro");return y.data},{mutateAsync:r,isPending:l}=le.useMutation({mutationFn:s,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:x=>{throw console.error("Failed to delete the team.",x),x}}),{mutateAsync:d}=le.useMutation({mutationFn:n,onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:x=>{throw console.error("Failed to update the team.",x),x},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:c}=le.useMutation({mutationFn:x=>o(x.teamId,x.data),onSuccess:()=>{a.invalidateQueries({queryKey:["teams"]})},onError:x=>{throw console.error("Failed to update the team.",x),x},onMutate:async()=>{await a.cancelQueries({queryKey:["teams"]})}}),{mutateAsync:m}=le.useMutation({mutationFn:x=>i(x.memberId,x.field,x.value),onError:x=>{throw console.error("Failed to update the member.",x),new Error("Error al actualizar el miembro")}});return{addTeamHandler:d,deleteTeamHandler:r,updateTeamHandler:c,updateMemberHandler:m,invalidateTeams:()=>{a.invalidateQueries({queryKey:["teams"]})},isLoadingDeleteTeam:l}},Ui=(e,a,n)=>{const s=u.useCallback(o=>{e.current&&!e.current.contains(o.target)&&a(!1)},[e,a]);u.useEffect(()=>(n&&document.addEventListener("mousedown",s),()=>{document.removeEventListener("mousedown",s)}),[s,n])},Hi=({color:e,onChange:a})=>t.jsxs(t.Fragment,{children:[t.jsx("style",{children:`
10
+ `+I)})()},title:i?"Editar tarea":"Nueva tarea",successButtonText:i?"Actualizar":"Crear",disabledSuccessButton:!S,children:a.jsxs("form",{className:"tm-flex tm-flex-col tm-gap-4",children:[a.jsx(Ae.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:E})=>{var I;return a.jsx(p.Input,{fullWidth:!0,label:"Título",placeholder:"Ingresa el título de la tarea...",error:(I=j.title)==null?void 0:I.message,...E})}}),a.jsx(Ae.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:E})=>{var I;return a.jsx(p.Textarea,{className:"ui-w-full tw-w-full",placeholder:"Describe la tarea a realizar...",label:"Descripción",error:(I=j.description)==null?void 0:I.message,...E})}}),a.jsx(p.Separator,{}),a.jsx(Ae.Controller,{control:g,name:"priority",rules:{required:"La prioridad es obligatoria"},render:({field:E,fieldState:{error:I}})=>a.jsx(p.Dropdown,{fullWidth:!0,label:"Prioridad",placeholder:"Selecciona la prioridad...",options:ti,error:I==null?void 0:I.message,value:E.value,onValueChange:N=>{E.onChange(N)}})}),a.jsx(Ae.Controller,{control:g,name:"difficulty",rules:{required:"La dificultad es obligatoria"},render:({field:E,fieldState:{error:I}})=>a.jsx(p.Dropdown,{fullWidth:!0,label:"Dificultad",placeholder:"Selecciona la dificultad...",options:ai,error:I==null?void 0:I.message,value:E.value,onValueChange:N=>{E.onChange(N)}})}),a.jsx(Ae.Controller,{control:g,name:"duration",rules:{required:"La duración es obligatoria"},render:({field:E,fieldState:{error:I}})=>a.jsx(p.Dropdown,{fullWidth:!0,label:"Duración",placeholder:"Selecciona la duración...",options:si,error:I==null?void 0:I.message,value:E.value,onValueChange:N=>{E.onChange(N)}})}),a.jsx(p.Separator,{}),a.jsx(Ae.Controller,{control:g,name:"team",rules:{required:"El equipo es obligatorio"},render:({field:E,fieldState:{error:I}})=>a.jsx(p.Dropdown,{fullWidth:!0,label:"Equipo",placeholder:"Selecciona el equipo...",options:l,error:I==null?void 0:I.message,value:E.value,onValueChange:N=>{E.onChange(N)}})}),a.jsx(Ae.Controller,{control:g,name:"responsible",render:({field:E,fieldState:{error:I}})=>a.jsx(p.Dropdown,{fullWidth:!0,absolute:!0,label:"Responsable",placeholder:"Selecciona el responsable...",options:f,error:I==null?void 0:I.message,value:E.value,onValueChange:N=>{E.onChange(N)}})})]})})},ni=()=>{const{get:e}=$e(),t=qe(i=>i.activeTemplate),{updateTaskInState:n,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,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 n({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"},Ea={dependiente:{stroke:"#3B82F6",strokeDasharray:"5,5",strokeWidth:2},normal:{stroke:"#6B7280",strokeWidth:2}},Ct=e=>{const t=e.map(n=>({...n}));return t.filter(n=>n.type==="group").forEach(n=>{const o=t.filter(m=>m.parentId===n.id);if(o.length===0)return;const s=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)}))-s,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;n.style={...n.style??{},width:r,height:c}}),t},St=e=>e.source===Ne.START_NODE_ID||e.target===Ne.START_NODE_ID,tt=e=>e===Ne.START_NODE_ID,oi=e=>e==="dependiente"?Ea.dependiente:Ea.normal,ri=(e,t,n)=>({id:e,type:"main",position:t,selected:!1,deletable:!0,data:n}),Et=(e,t,n,o,s,i=!1,r=null,l=null)=>{const d=oi(o),c=i?Ne.DEFAULT_SOURCE_HANDLE:n;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:s,isFromStartNode:i,parentId:r,childId:l}}},ii=(e,t)=>!(!e||!t||e===t),li=e=>{const{clientX:t,clientY:n}="changedTouches"in e?e.changedTouches[0]:e;return{x:t,y:n}},ci=e=>e.filter(t=>t.type==="position"&&t.dragging===!1),Es=e=>e.map(t=>t.id),As=({nodes:e,edges:t,setNodes:n,setEdges:o,newNodePopup:s,connectionPopup:i,closeNewNodePopup:r,closeConnectionPopup:l,setIsConnectingExistingNodes:d})=>{const{screenToFlowPosition:c,getNode:m,setViewport:f,fitView:h}=oe.useReactFlow(),{get:g,update:x,addTaskUpdatingTemplate:j,addTemplateUpdatingTemplate:w}=$e(),b=qe(F=>F.activeTemplate),y=le.useQueryClient(),v=qe(F=>F.setActiveTemplate),{removeTaskFromState:S,updateNodeWithNewEdge:O,updateTaskInState:L}=ct(),E=u.useCallback(async F=>{const G=e.find($=>$.id===F);if(!(G!=null&&G.data))return null;if(G.id===Ne.START_NODE_ID){if(!b)return null;try{const $=await g(b.id),B=$.tarea_plantillas.find(U=>U.start===!0);return B!=null&&B.id?B.id:$.tarea_plantillas.length>0?$.tarea_plantillas[0].id:null}catch{return null}}const D=G.data.id;if(!D&&D!==0)return null;if(typeof D=="string"){if(D.includes("-"))return D;{const $=parseInt(D,10);return isNaN($)?null:$}}else if(typeof D=="number")return D;return null},[e,b,g]),I=u.useCallback(async(F=e,G=t)=>{var D,$,B,U,V,R,ae;if(!b){p.toast.warning("No hay template activo para actualizar layout");return}try{const ee=await g(b.id);if(!ee){p.toast.warning("Template no encontrado en IndexedDB");return}const A=(D=ee.graph_layout)==null?void 0:D.snapshot;if(!(!A||JSON.stringify(A.nodes)!==JSON.stringify(F)||JSON.stringify(A.edges)!==JSON.stringify(G))){console.log("🔄 No hay cambios en el layout, omitiendo actualización");return}const Y=F.filter(W=>{var _;return!((_=W.data)!=null&&_.isInternal)&&!W.parentId}).map(W=>{const{style:_,measured:C,data:q,selected:M,...T}=W,{expandedDimensions:Q,isExpanded:Z,needsReExpansion:te,...re}=q||{},J=_?{..._,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...T,style:J,data:re}}),k=G.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:k,viewport:((U=(B=ee.graph_layout)==null?void 0:B.snapshot)==null?void 0:U.viewport)||{x:0,y:0,zoom:1}},history:((V=ee.graph_layout)==null?void 0:V.history)||[],zoom:((R=ee.graph_layout)==null?void 0:R.zoom)||1,position:((ae=ee.graph_layout)==null?void 0:ae.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 y.invalidateQueries({queryKey:["template",b.id]}),await y.invalidateQueries({queryKey:["template"]}),console.log("✅ [useFlowActions] Caché invalidado exitosamente"),v(P)}catch(ee){console.error("❌ Error al actualizar template layout:",ee)}},[b,g,x,e,t,v]),N=u.useCallback(async(F=[],G=[],D,$)=>{var U,V,R,ae,ee,A,K,Y,k,P,W,_;const B=D||(b==null?void 0:b.id);if(!B){p.toast.warning("No hay template ID disponible para actualizar");return}try{const C=await g(B);if(!C)return;const q=(R=(V=(U=C.graph_layout)==null?void 0:U.snapshot)==null?void 0:V.nodes)==null?void 0:R.filter(Q=>{var Z;return!F.includes(Q.id)&&!((Z=Q.data)!=null&&Z.isInternal)&&!Q.parentId}).map(Q=>{const{style:Z,measured:te,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}}),M=((A=(ee=(ae=C.graph_layout)==null?void 0:ae.snapshot)==null?void 0:ee.edges)==null?void 0:A.filter(Q=>{var Z;return!F.includes(Q.source)&&!F.includes(Q.target)&&!((Z=Q.data)!=null&&Z.isInternal)}))||[],T={...C,graph_layout:{id:((K=C.graph_layout)==null?void 0:K.id)||0,snapshot:{nodes:q,edges:M,viewport:((k=(Y=C.graph_layout)==null?void 0:Y.snapshot)==null?void 0:k.viewport)||{x:0,y:0,zoom:1}},history:((P=C.graph_layout)==null?void 0:P.history)||[],zoom:((W=C.graph_layout)==null?void 0:W.zoom)||1,position:((_=C.graph_layout)==null?void 0:_.position)||{x:0,y:0}},estatus:Te.DIRTY,updatedAt:new Date().toISOString()};await S({templateId:B,id:$||0}),await x(B,T),await y.invalidateQueries({queryKey:["template",B]}),await y.invalidateQueries({queryKey:["template"]}),B===(b==null?void 0:b.id)&&v(T)}catch(C){console.error("❌ updateAfterDeleted - Error al actualizar template layout:",C)}},[b,g,x,t,e,S,v]),X=u.useCallback(async(F,G,D)=>{if(!s||!b)return;const{nodeId:$,sourceNodeId:B,sourceHandleId:U}=s;if(B)try{const V=await E(B);if(!V)return;if(F==="plantilla"){const R=D;if(!(R!=null&&R.templateId))return;if(!await w(R.templateId,b.id,V,G)){p.toast.error("No se pudo agregar la plantilla. Intenta nuevamente."),r();return}try{const W=await g(b.id);if(W){const _=(q,M)=>{for(const T of q){if(T.id===M||T.uuid===M)return T;if(T.tareas&&T.tareas.length>0){const Q=_(T.tareas,M);if(Q)return Q}}return null},C=_(W.tarea_plantillas,V);if(C&&C.id){const q=(C.plantilla_dependents||[]).map(T=>typeof T=="object"&&T.id?{id:T.id}:typeof T=="number"?{id:T}:T),M={...C,plantilla_dependents:q,plantilla:{id:b.id,clave:W.clave,categoria:W.categoria||{id:0,nombre:"Sin categoría"}}};await L({task:M}),console.log("✅ Tarea padre agregada a templates_states.updated con plantilla_dependents:",C.id,M.plantilla_dependents)}}}catch(W){console.error("❌ Error al actualizar tarea padre en templates_states:",W)}const ee=c({x:s.position.x,y:s.position.y}),A=R.templateData||{id:R.templateId,nombre_plantilla:`Flujo de trabajo ${R.templateId}`,clave:`TPL-${R.templateId}`,estatus:"activo",categoria:null,counts_tasks:0,dias_duracion:0},K={id:$,type:"group",position:ee,selected:!1,deletable:!0,data:{id:R.templateId,templateId:R.templateId,type:"template",nombre_plantilla:A.nombre_plantilla||`Flujo de trabajo ${R.templateId}`,clave:A.clave||`TPL-${R.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}};n(W=>[...W,K]);const Y=U||Ne.DEFAULT_SOURCE_HANDLE,k=tt(B),P=Et(B,$,Y,G,"plantilla",k,V);o(W=>[...W,P]);try{const W=[...e,K],_=[...t,P];await I(W,_)}catch(W){console.error("❌ Error al actualizar layout después de agregar plantilla:",W)}}else if(F==="tarea"){const R=D;if(!R)return;const ae=c({x:s.position.x,y:s.position.y}),ee=-new Date().getTime(),A={id:ee,reference_graph:$,title:R.title,description:R.description,priority:R.priority,difficulty:R.difficulty,duration:R.duration,team:R.team,responsible:R.responsible,parent:{data:{id:V}}},K=await j(A,b.id,G),Y=ri($,ae,K);n(_=>[..._,Y]);const k=U||Ne.DEFAULT_SOURCE_HANDLE,P=tt(B),W=Et(B,$,k,G,F,P,V,ee);o(_=>[..._,W]);try{const _=[...e,Y],C=[...t,W];await I(_,C)}catch(_){console.error("❌ Error al actualizar layout después de agregar tarea:",_)}setTimeout(()=>{try{const _=m($);if(_){const C=window.innerWidth,q=window.innerHeight,M=C/2,T=q/2;f({x:M-_.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)}},[s,b,j,w,E,c,n,o,r,I,e,t]),H=u.useCallback(async(F,G)=>{var U,V;if(console.log("🟢 createConnectionFromPopup - INICIO",{nodeType:F,connectionType:G}),!i){console.warn("⚠️ createConnectionFromPopup - No hay connectionPopup");return}const{sourceNodeId:D,sourceHandleId:$,targetNodeId:B}=i;console.log("🟢 createConnectionFromPopup - Datos de conexión:",{sourceNodeId:D,targetNodeId:B,sourceHandleId:$});try{if(!(window.validConnectionTypes||{dependiente:!0,hija:!0})[G]){console.warn("⚠️ createConnectionFromPopup - Tipo de conexión no válido:",G),p.toast.warning("Tipo de conexión no válido"),d(!1),l();return}const ae=e.find(M=>M.id===D),ee=e.find(M=>M.id===B);console.log("🟢 createConnectionFromPopup - Nodos encontrados:",{sourceNode:ae==null?void 0:ae.id,targetNode:ee==null?void 0:ee.id,sourceData:ae==null?void 0:ae.data,targetData:ee==null?void 0:ee.data});const A=ee==null?void 0:ee.data,K=((U=ae==null?void 0:ae.data)==null?void 0:U.id)||D,Y=((V=ee==null?void 0:ee.data)==null?void 0:V.id)||B;console.log("🟢 createConnectionFromPopup - IDs extraídos:",{parentId:K,childId:Y});const k=Et(D,B,$||Ne.DEFAULT_SOURCE_HANDLE,G,F,tt(D),K,Y);console.log("🟢 createConnectionFromPopup - Nuevo edge creado:",k),o(M=>[...M,k]);const P=[...t,k],W=A.id||-Date.now(),_=A.reference_graph||B,C={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,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:G==="hija"?{id:k.data.parentId}:null,id_t_requerida:G==="dependiente"?{id:k.data.parentId}:null,tareas:A.tareas||[],type:"task"};console.log("🟢 createConnectionFromPopup - taskForState creado:",C),console.log("🟢 createConnectionFromPopup - currentTemplate.id:",b.id);const q=e.map(M=>M.id===B?{...M,data:C}:M);console.log("🟢 createConnectionFromPopup - Actualizando nodos en React Flow..."),n(q),console.log("✅ createConnectionFromPopup - Nodos actualizados en React Flow"),console.log("🟢 createConnectionFromPopup - Actualizando template layout..."),await I(q,P),console.log("✅ createConnectionFromPopup - Template layout actualizado"),console.log("🟢 createConnectionFromPopup - Llamando a updateNodeWithNewEdge..."),await O({templateId:b.id,edge:k,task:C}),console.log("✅ createConnectionFromPopup - updateNodeWithNewEdge completado")}catch(R){console.error("❌ createConnectionFromPopup - Error al crear conexión:",R),console.error("❌ createConnectionFromPopup - Stack:",R.stack)}finally{console.log("🟢 createConnectionFromPopup - Limpiando estado..."),d(!1),l(),console.log("🟢 createConnectionFromPopup - FIN")}},[i,o,d,l,t,e,I]),z=u.useCallback(async F=>{if(!s||!b){p.toast.warning("No hay newNodePopup o template activo para actualizar el nodo");return}const{nodeId:G}=s;if(!G){p.toast.warning("No se encontró nodeId en newNodePopup");return}try{const D=e.find(B=>B.id===G);if(!D){p.toast.warning(`No se encontró el nodo con ID: ${G}`);return}const $={...D,data:{...D.data,...F,id:D.data.id||D.id,type:D.data.type||D.data.type,updatedAt:new Date().toISOString()}};n(B=>B.map(U=>U.id===G?$:U));try{const B=e.map(U=>U.id===G?$:U);await I(B,t)}catch(B){p.toast.error("Error al actualizar layout después de actualizar nodo:",B)}r()}catch(D){p.toast.error("Error al actualizar el nodo:",D)}},[s,b,e,n,t,I,r]);return{createNodeFromPopup:X,createConnectionFromPopup:H,updateNodeFromPopup:z,updateAfterDeleted:N}},di=({data:e,id:t,isConnectable:n,selected:o})=>{const s=_e(H=>H.getViewMode),[i,r]=u.useState(!1),[l,d]=u.useState(e),c=qe(H=>H.activeTemplate),m=qe(H=>H.setActiveTemplate),{get:f,update:h}=$e(),{data:g}=za(),{users:x}=bt(),j=c!=null&&c.id?s(c.id):"readonly",{updateTaskInTemplate:w}=ni(),{setNodes:b,setEdges:y,getNodes:v,getEdges:S}=oe.useReactFlow(),O=le.useQueryClient(),{updateAfterDeleted:L}=As({nodes:v(),edges:S(),setNodes:b,setEdges:y,newNodePopup:null,connectionPopup:null,closeNewNodePopup:()=>{},closeConnectionPopup:()=>{},setIsConnectingExistingNodes:()=>{}}),E=()=>{r(!0)},I=u.useCallback(async()=>{var $,B,U;const H=v().find(V=>V.id===t);if(!H){console.warn("⚠️ Nodo no encontrado para eliminar");return}const z=[H],F=Es(z),G=z.length>0?(B=($=z[0])==null?void 0:$.data)==null?void 0:B.id:0;y(V=>V.filter(R=>!F.includes(R.source)&&!F.includes(R.target))),b(V=>V.filter(R=>R.id!==t));let D;for(const V of z)try{const R=V.data;if((U=R==null?void 0:R.plantilla)!=null&&U.id){D=R.plantilla.id;break}}catch{}try{y(V=>((async()=>{await L(F,V,D,G)})().catch(R=>{console.error("❌ Error en updateAfterDeleted:",R)}),V))}catch(V){console.error("❌ Error en handleDeleteNode:",V)}},[t,v,b,y,L]),N=u.useCallback(async H=>{var z,F,G,D,$,B,U,V,R,ae;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(H))){console.log("🔄 MainNode.updateTemplateLayout - No hay cambios en nodos, omitiendo actualización");return}const Y=H.filter(W=>{var _;return!((_=W.data)!=null&&_.isInternal)&&!W.parentId}).map(W=>{const{style:_,measured:C,data:q,selected:M,...T}=W,{expandedDimensions:Q,isExpanded:Z,needsReExpansion:te,...re}=q||{},J=_?{..._,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0;return{...T,style:J,data:re}}),k=(((G=(F=ee.graph_layout)==null?void 0:F.snapshot)==null?void 0:G.edges)||[]).filter(W=>{var _;return!((_=W.data)!=null&&_.isInternal)}),P={...ee,graph_layout:{id:((D=ee.graph_layout)==null?void 0:D.id)||0,snapshot:{...($=ee.graph_layout)==null?void 0:$.snapshot,nodes:Y,edges:k,viewport:((U=(B=ee.graph_layout)==null?void 0:B.snapshot)==null?void 0:U.viewport)||{x:0,y:0,zoom:1}},history:((V=ee.graph_layout)==null?void 0:V.history)||[],zoom:((R=ee.graph_layout)==null?void 0:R.zoom)||1,position:((ae=ee.graph_layout)==null?void 0:ae.position)||{x:0,y:0}},estatus:Te.DIRTY,updatedAt:new Date().toISOString()};await h(c.id,P),await O.invalidateQueries({queryKey:["template",c.id]}),await O.invalidateQueries({queryKey:["template"]}),c&&c.id===P.id&&m(P)}catch(ee){console.error("❌ MainNode.updateTemplateLayout - Error al actualizar template layout:",ee)}},[c,f,h,m,O]),X=async H=>{if(c){const z=H.responsible,F=z!==""&&z!=null&&!Number.isNaN(Number(z))?Number(z):null,G=F!=null?x==null?void 0:x.find(U=>U.id===F):void 0,D=e.responsable&&typeof e.responsable=="object"&&"email"in e.responsable&&typeof e.responsable.email=="string"?e.responsable.email:"",$=F!=null?{id:F,email:(G==null?void 0:G.email)??D}:{id:null,email:""},B={...e,texto_corto:H.title,texto_largo:H.description,prioridad:H.priority?typeof H.priority=="number"?H.priority:parseInt(H.priority.toString()):null,nivel_dificultad:H.difficulty?typeof H.difficulty=="number"?H.difficulty:parseInt(H.difficulty.toString()):1,duracion:H.duration?typeof H.duration=="number"?H.duration:parseInt(H.duration.toString()):null,equipo:(()=>{var R;const U=Number(H.team)||null;if(!U)return{id:null};const V=(R=g==null?void 0:g.find(ae=>ae.value===U))==null?void 0:R.label;return{id:U,...V?{nombre:V}:{}}})(),responsable:$};await w(e.id,B),b(U=>{const V=U.map(R=>R.id===t?{...R,data:{...R.data,...B,tarea_padre:e.tarea_padre,id_t_requerida:e.id_t_requerida,updatedAt:new Date().toISOString()}}:R);return setTimeout(()=>N(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-[423px] ${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:n,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:n,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:n,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:n,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&&j!=="readonly"&&a.jsx("div",{children:e.type==="task"?a.jsx(p.Popup,{position:"right",absolute:!0,size:"xxs",pill:"pill",color:"secondary",icon:de.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:de.faEdit,onClick:E,children:"Editar"}),a.jsx(p.ListItem,{icon:de.faPlus,color:"red",onClick:I,children:"Eliminar"})]})}):a.jsx(p.Button,{size:"xxs",color:"secondary",pill:"pill",icon:de.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(Wr,{duration:l.duracion}),a.jsx(Gr,{difficulty:l.nivel_dificultad}),a.jsx(Xr,{priority:l.prioridad}),a.jsx(Kr,{equipo:l.equipo}),a.jsx(ei,{responsible:l.responsable})]})]}),a.jsx(oe.Handle,{isConnectable:n,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:n,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:n,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:n,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(Ss,{isOpen:i,onClose:()=>r(!1),onSuccess:X,editMode:!0,taskToEdit:l})]})},mi=async({tasks_api:e,page:t=1,pageSize:n=10,search:o="",filters:s={}})=>{const i={clave:{$notNull:!0},estatus:{$ne:Pe.DELETED},...o?{$or:[{nombre_plantilla:{$containsi:o}},{clave:{$containsi:o}}]}:{},...Object.keys(s).reduce((d,c)=>(Array.isArray(s[c])?d[c]={id:{$in:s[c]}}:d[c]=s[c],d),{})},r=De.stringify({filters:i,fields:["id","clave","estatus","dias_duracion","createdAt","publication_date"],count_tasks:!0,tarea_plantillas:!1,populate:{updated_by:{fields:["id","nombre","username","email"]},created_by:{fields:["id","nombre","username","email"]},params_plantillas:{fields:["id","name"],populate:{params_tipo:{fields:["id","key","label","order"]}}},tarea_plantillas:{fields:["id"],filters:{start:!0},populate:{tareas:{fields:["id"]},ids_t_dependientes:{fields:["id"]}}}},sort:{createdAt:"asc"},pagination:{page:t,pageSize:n}},{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:n,pageCount:0,total:0}}}},Ps=({page:e=1,pageSize:t=10,search:n="",filters:o={}})=>{const{tasks_api:s}=fe();return le.useQuery({queryKey:["templates",e,t,n,o],queryFn:()=>mi({tasks_api:s,page:e,pageSize:t,search:n,filters:o}),staleTime:1e3*60*60*24,placeholderData:le.keepPreviousData,select:i=>({data:(i==null?void 0:i.data)||[],meta:i==null?void 0:i.meta})})},Ds=({isOpen:e,onClose:t,onSuccess:n,nodeDataType:o,parentNodeInfo:s})=>{var v,S,O,L;const i=_e(E=>E.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:x}=Ps({page:c,pageSize:d,search:f}),j=E=>{h(E.target.value)},w=()=>{var I;if(r===0)return;const E=(I=g==null?void 0:g.data)==null?void 0:I.find(N=>N.id===r);if(!E){console.error("No se encontró el flujo de trabajo seleccionado en los datos");return}n?n({templateId:r,templateData:E}):i&&i(o.id,o.type,o.connectionType)};if(x)return a.jsx("div",{children:"Cargando..."});if(!(g!=null&&g.data))return a.jsx("div",{children:"No hay datos disponibles"});const b=((S=(v=g.meta)==null?void 0:v.pagination)==null?void 0:S.total)||0,y=b===1?"flujo encontrado":"flujos encontrados";return a.jsx(p.Modal,{iconConfig:{icon:Se.faPencil},isOpen:e,size:"lg",onSuccess:w,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," ",y]}),a.jsx(p.Input,{className:"tm-flex-1",leftSlot:Se.faSearch,fullWidth:!0,placeholder:"Buscar por nombre, parámetros o estado...",value:f,onChange:j})]}),a.jsx(p.Separator,{}),a.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-6 tm-p-12",children:[g.data.map(E=>a.jsx(Ns,{mode:"modal",template:E,active:r===E.id,fullWidth:!0,onClick:l,withOptions:!1},E.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:((L=(O=g==null?void 0:g.meta)==null?void 0:O.pagination)==null?void 0:L.pageCount)||1,currentPage:c,onPageChange:E=>m(E)})})]})})},ui=({data:e,id:t})=>{const n=_e(m=>m.addNodeWithType),[o,s]=u.useState(!1),[i,r]=u.useState(!1),[l,d]=u.useState({id:t,type:"tarea",connectionType:"dependiente"}),c=({type:m,connectionType:f})=>{n&&(d({id:t,type:m,connectionType:f}),m==="tarea"?s(!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(Ds,{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:de.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:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>c({type:"tarea",connectionType:"dependiente"}),children:"Dependiente"}),a.jsx(p.ListItem,{icon:de.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:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>c({type:"plantilla",connectionType:"dependiente"}),children:"Dependiente"}),a.jsx(p.ListItem,{icon:de.faArrowDownRight,iconColor:"neutral",onClick:()=>c({type:"plantilla",connectionType:"hija"}),children:"Hija"})]})})]})},pi=({isOpen:e,position:t,onClose:n,createNodeFromPopup:o,parentNodeInfo:s})=>{const[i,r]=u.useState(!1),[l,d]=u.useState(!1),[c,m]=u.useState(null);if(!e)return null;const f=(w,b)=>{m({type:w,connectionType:b}),w==="tarea"?r(!0):w==="plantilla"&&d(!0)},h=()=>{r(!1),m(null),n()},g=()=>{d(!1),m(null),n()},x=w=>{c&&o(c.type,c.connectionType,w),h()},j=w=>{c&&w&&o(c.type,c.connectionType,w),g()};return a.jsxs(a.Fragment,{children:[!i&&!l&&a.jsx("div",{className:"tm-fixed tm-inset-0 tm-z-50",onClick:n}),!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:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>f("tarea","dependiente"),children:"Dependiente"}),a.jsx(p.ListItem,{icon:de.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:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>f("plantilla","dependiente"),children:"Dependiente"})]})})}),i&&c&&a.jsx(Ss,{isOpen:i,onClose:h,onSuccess:x,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:s}),l&&c&&a.jsx(Ds,{isOpen:l,onClose:g,onSuccess:j,nodeDataType:{id:"",type:c.type,connectionType:c.connectionType},parentNodeInfo:s})]})};function fi({reactFlowWrapper:e,nodes:t,resetZoomHistoryKey:n}){const{setViewport:o,getViewport:s}=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,x]=u.useState(0);u.useLayoutEffect(()=>{const L=e==null?void 0:e.current;if(L){const E=L.getBoundingClientRect();x(E.width)}},[e]);const j=u.useMemo(()=>{var N;if(!t||t.length===0)return{x:0,y:0,zoom:1};const L=t.find(X=>{var H;return(H=X==null?void 0:X.data)==null?void 0:H.main})??t[0];return{x:(g||(typeof window<"u"?window.innerWidth:0))/2-(((N=L==null?void 0:L.position)==null?void 0:N.x)??0),y:20,zoom:1}},[t,g]),w=u.useCallback(L=>{if(!f){const E=[...l.slice(0,c+1),L];d(E),m(E.length-1)}},[l,c,f]),b=u.useCallback(()=>{if(f)return;const L=s(),E=Math.min(L.zoom*1.2,2);w(L),h(!0),o({x:L.x,y:L.y,zoom:E}),setTimeout(()=>h(!1),100)},[s,o,w,f]),y=u.useCallback(()=>{if(f)return;const L=s(),E=Math.max(L.zoom/1.2,.5);w(L),h(!0),o({x:L.x,y:L.y,zoom:E}),setTimeout(()=>h(!1),100)},[s,o,w,f]),v=u.useCallback(()=>{if(f)return;const L=s();Math.abs(L.zoom-1)>.01&&w(L),h(!0),o({x:L.x,y:L.y,zoom:1}),setTimeout(()=>h(!1),100)},[s,o,w,f]),S=u.useCallback(()=>{if(f||c<=0)return;const L=l[c-1];h(!0),o(L),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(()=>{n!=null&&(d([{zoom:1,x:0,y:0}]),m(0))},[n]),{isReady:g!==0&&Array.isArray(t)&&t.length>0,defaultViewport:j,zoomPercentage:r,handleZoomIn:b,handleZoomOut:y,handleZoomTo100:v,handleDoubleClick:S}}const gi=e=>{var i,r;const t=((i=e.data)==null?void 0:i.isInternal)||!1,n=(r=e.data)==null?void 0:r.originalGroupId,o=e.selected||!1,s=l=>{if(l.preventDefault(),l.stopPropagation(),n){const c=_e.getState().collapseGroup;c&&c(n)}};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:s,className:"tm-p-2 nopan nodrag",icon:de.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"})]})},hi=()=>{const e=u.useCallback((s,i,r,l)=>{const d=(f,h)=>{const g=f.position.x,x=f.position.y,j=120,w=60,b=15;switch(h){case"top-source":case"top-target":return{x:g,y:x-w/2-b};case"bottom-source":case"bottom-target":return{x:g,y:x+w/2+b};case"left-source":case"left-target":return{x:g-j/2-b,y:x};case"right-source":case"right-target":return{x:g+j/2+b,y:x};default:return{x:g,y:x}}},c=d(s,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((s,i)=>{if(s.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(s),d=r(i);return{top:"bottom",bottom:"top",left:"right",right:"left"}[l]===d},[]),n=u.useCallback((s,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(s,i,m,f);h<d&&(d=h,c={handle1:m,handle2:f})}return c},[e,t]),o=u.useCallback((s,i,r=800)=>Math.sqrt(Math.pow(i.position.x-s.position.x,2)+Math.pow(i.position.y-s.position.y,2))<r,[]);return{findClosestHandles:n,calculateHandleDistance:e,areHandlesCompatible:t,shouldApplyMagneticConnection:o}},xi=e=>{const[t,n]=u.useState(null),[o,s]=u.useState(null),[i,r]=u.useState(!1),l=u.useCallback((h,g,x,j)=>{n({isOpen:!0,nodeId:h,position:g,sourceNodeId:x,sourceHandleId:j})},[]),d=u.useCallback(()=>{n(null)},[]),c=u.useCallback((h,g,x,j,w)=>{r(!0),s({isOpen:!0,sourceNodeId:h,sourceHandleId:x,targetNodeId:g,targetHandleId:j,position:w})},[]),m=u.useCallback(()=>{r(!1),s(null)},[]),f=u.useCallback(()=>{var g,x,j;if(!(t!=null&&t.sourceNodeId))return null;const h=e.find(w=>w.id===t.sourceNodeId);return h?{id:h.id,label:(g=h.data)==null?void 0:g.label,nodeType:(x=h.data)==null?void 0:x.nodeType,connectionType:(j=h.data)==null?void 0:j.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}},bi=({initialNodes:e,initialEdges:t})=>{const[n,o,s]=oe.useNodesState(Ct(e)),[i,r,l]=oe.useEdgesState(t),[d,c]=u.useState(!1),m=u.useCallback(k=>{r(k)},[r]),{toObject:f}=oe.useReactFlow(),{findClosestHandles:h,shouldApplyMagneticConnection:g}=hi(),{updateGraphLayout:x,get:j,update:w}=$e(),b=qe(k=>k.activeTemplate),y=qe(k=>k.setActiveTemplate),v=le.useQueryClient(),{removeParentIdFromNodes:S}=ct(),{newNodePopup:O,connectionPopup:L,isConnectingExistingNodes:E,openNewNodePopup:I,closeNewNodePopup:N,openConnectionPopup:X,closeConnectionPopup:H,getParentNodeInfo:z,setIsConnectingExistingNodes:F}=xi(n),{createNodeFromPopup:G,createConnectionFromPopup:D,updateNodeFromPopup:$,updateAfterDeleted:B}=As({nodes:n,edges:i,setNodes:o,setEdges:m,newNodePopup:O,connectionPopup:L,closeNewNodePopup:N,closeConnectionPopup:H,setIsConnectingExistingNodes:F});u.useEffect(()=>{if(e&&e.length>0){if(!(e.some((M,T)=>{const Q=n[T];return Q?M.id!==Q.id||JSON.stringify(M.position)!==JSON.stringify(Q.position)||JSON.stringify(M.data)!==JSON.stringify(Q.data):!0})||e.length!==n.filter(M=>{var T;return!((T=M.data)!=null&&T.isInternal)}).length)&&n.length>0)return;const{expandedGroups:P,groupTemplateData:W}=_e.getState(),_=Ct(e),C=new Set(_.map(M=>M.id)),q=n.filter(M=>{var T,Q;return((T=M.data)==null?void 0:T.isInternal)&&typeof((Q=M.data)==null?void 0:Q.originalGroupId)=="string"&&P.has(M.data.originalGroupId)&&C.has(M.data.originalGroupId)});if(q.length>0){const M=_.map(T=>{var Q;if(P.has(T.id)){const Z=n.find(re=>re.id===T.id),te=(Q=Z==null?void 0:Z.data)==null?void 0:Q.expandedDimensions;if(te)return{...T,style:{...T.style,width:te.width,height:te.height},data:{...T.data,isExpanded:!0,expandedDimensions:te}}}return T});o([...M,...q])}else if(P.size>0){const M=_.map(T=>P.has(T.id)&&W[T.id]?{...T,data:{...T.data,isExpanded:!0,needsReExpansion:!0}}:T);o(M)}else o(_)}else o([])},[e,o]),u.useEffect(()=>{if(!d&&t&&t.length>0){const{expandedGroups:k}=_e.getState(),P=Ct(e),W=new Set(P.map(q=>q.id)),_=i.filter(q=>{var M,T;return((M=q.data)==null?void 0:M.isInternal)&&typeof((T=q.data)==null?void 0:T.originalGroupId)=="string"&&k.has(q.data.originalGroupId)&&W.has(q.data.originalGroupId)}),C=i.filter(q=>{var M,T;return((M=q.data)==null?void 0:M.redirectedToInternal)&&typeof((T=q.data)==null?void 0:T.originalTarget)=="string"&&k.has(q.data.originalTarget)&&W.has(q.data.originalTarget)});if(_.length>0||C.length>0){const q=t.filter(M=>!C.some(T=>{var Q;return((Q=T.data)==null?void 0:Q.originalTarget)===M.target}));m([...q,..._,...C])}else m(t)}},[t,m,d]);const U=u.useCallback((k,P,W=!1)=>{const C=i.filter(T=>T.target===P).length>0;if(i.some(T=>T.source===k&&T.target===P||T.source===P&&T.target===k)&&!W)return p.toast.warning("La tarea destino ya tiene una conexión"),!1;const M=!C;return typeof window<"u"&&(window.validConnectionTypes={dependiente:M,hija:M}),M?!0:(p.toast.warning("La tarea destino ya tiene una conexión de entrada"),!1)},[i]),V=u.useCallback(k=>{if(!ii(k.source,k.target))return;tt(k.source)&&!k.sourceHandle&&(k.sourceHandle=Ne.DEFAULT_SOURCE_HANDLE);const P=n.find(_=>_.id===k.source),W=n.find(_=>_.id===k.target);if(P&&W){if(!U(k.source,k.target))return;X(k.source,k.target,k.sourceHandle,k.targetHandle);return}return m(_=>oe.addEdge(k,_))},[n,X,m,U]),R=u.useCallback((k,P)=>{var W;if(!E&&!P.isValid&&P.fromNode){const _=n.find(te=>te.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 C=li(k),q=document.elementFromPoint(C.x,C.y);if(q!=null&&q.closest(".react-flow__node"))return;const M=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;I(M,C,P.fromNode.id,Z)}},[E,I,n]),ae=u.useCallback(async k=>{var C,q,M;const P=Es(k),W=k.length>0?(q=(C=k[0])==null?void 0:C.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 k)try{const Q=T.data;if((M=Q==null?void 0:Q.plantilla)!=null&&M.id){_=Q.plantilla.id;break}}catch{}try{m(T=>((async()=>{await B(P,T,_,W)})().catch(Q=>{console.error("❌ Error en updateAfterDeleted:",Q)}),T))}catch(T){console.error("❌ Error en onDeleteNode:",T)}},[m,B]),ee=u.useCallback(async k=>{var W,_,C,q,M,T,Q,Z,te,re,J,se,ce,me;if(!k||k.length===0)return;let P;if(b!=null&&b.id)P=b.id;else for(const ie of k){const ye=n.find(be=>be.id===ie.source),pe=n.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 j(P);if(!ie){console.warn("⚠️ onEdgesDelete - Template no encontrado en IndexedDB");return}const ye=k.map(ue=>ue.id),pe=((C=(_=(W=ie.graph_layout)==null?void 0:W.snapshot)==null?void 0:_.edges)==null?void 0:C.filter(ue=>{var he;return!ye.includes(ue.id)&&!((he=ue.data)!=null&&he.isInternal)}))||[],Ee=(((T=(M=(q=ie.graph_layout)==null?void 0:q.snapshot)==null?void 0:M.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:$l,...aa}=xe||{},Ws=he?{...he,width:void 0,height:void 0,minWidth:void 0,minHeight:void 0}:void 0,Qs=ue.data.id===k[0].data.childId?{...aa,tarea_padre:null,id_t_requerida:null}:aa;return{...Be,style:Ws,data:Qs}}),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:((te=ie.graph_layout)==null?void 0:te.id)||0,snapshot:{nodes:Ee,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 S({templateId:P,id:k[0].data.childId}),await w(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)&&y(ge)}catch(ie){console.error("❌ onEdgesDelete - Error al actualizar template layout:",ie)}},[n,b,j,w,y,S]),A=u.useCallback(async k=>!k.nodes.some(W=>W.type==="start"||W.id===Ne.START_NODE_ID),[]),K=u.useCallback((k,P,W)=>{var M,T,Q;const _=n.find(Z=>Z.id===P.id);if(!_)return;if(_.type==="group"&&((M=_.data)!=null&&M.isExpanded)){m(Z=>Z.map(te=>{if(te.hidden&&te.target===P.id){const{hidden:re,...J}=te;return J}return te}));return}let C;if(_.type==="group"?C=b==null?void 0:b.id:(Q=(T=P==null?void 0:P.data)==null?void 0:T.plantilla)!=null&&Q.id&&(C=P.data.plantilla.id),!C)return;const q=i.map(Z=>{var J,se,ce,me,ie;if(St(Z))return Z;const te=n.find(ye=>ye.id===Z.source),re=n.find(ye=>ye.id===Z.target);if(te&&re){const ye=te.type==="group"&&((J=te.data)==null?void 0:J.isExpanded),pe=re.type==="group"&&((se=re.data)==null?void 0:se.isExpanded),be=(ce=te.data)==null?void 0:ce.isInternal,Ee=(me=re.data)==null?void 0:me.isInternal,we=(ie=Z.data)==null?void 0:ie.redirectedToInternal;if(ye||pe||be||Ee||we)return Z;if(te.id===P.id||re.id===P.id||g(te,re,Ne.MAGNETIC_CONNECTION_DISTANCE)){const ge=h(te,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(C,Z)},100);else{const Z=f();x(C,Z)}},[n,i,b,x,f,m,h,g]),Y=u.useCallback(k=>{s(k);const P=ci(k);if(P.length>0){const W=P.filter(_=>{var q;const C=n.find(M=>M.id===_);return(C==null?void 0:C.type)==="group"&&((q=C==null?void 0:C.data)==null?void 0:q.isExpanded)});if(W.length>0){m(_=>_.map(C=>{var T;const q=W.includes(C.target),M=!((T=C.data)!=null&&T.redirectedToInternal);return q&&M?{...C,hidden:!0}:C}));return}c(!0),setTimeout(()=>{const _=i.map(q=>{var Q,Z,te,re;if(St(q))return{...q};const M=n.find(J=>J.id===q.source),T=n.find(J=>J.id===q.target);if(M&&T){const J=M.type==="group"&&((Q=M.data)==null?void 0:Q.isExpanded),se=T.type==="group"&&((Z=T.data)==null?void 0:Z.isExpanded),ce=(te=M.data)==null?void 0:te.isInternal,me=(re=T.data)==null?void 0:re.isInternal;if(J||se||ce||me)return{...q};if(g(M,T,Ne.MAGNETIC_CONNECTION_DISTANCE)){const ie=h(M,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,M)=>{const T=_[M];return q.sourceHandle!==T.sourceHandle||q.targetHandle!==T.targetHandle})){const q=_.map(M=>({...M,id:M.id}));m(q)}setTimeout(()=>{c(!1)},200)},0)}},[s,i,n,m,h,g,c]);return{nodes:n,edges:i,newNodePopup:O,connectionPopup:L,setNodes:o,setEdges:m,onEdgesChange:l,onConnect:V,onConnectEnd:R,onDeleteNode:ae,onEdgesDelete:ee,onBeforeDelete:A,handleNodesChange:Y,onDragEnd:K,getParentNodeInfo:z,isProtectedConnection:St,isStartNode:tt,createNodeFromPopup:G,updateNodeFromPopup:$,closeNewNodePopup:N,createConnectionFromPopup:D,closeConnectionPopup:H}},yi=({isOpen:e,onClose:t,createConnectionFromPopup:n,availableConnections:o})=>{if(!e)return null;const s=o||{tarea:{dependiente:!0,hija:!0},plantilla:{dependiente:!0}},i=(r,l)=>{(r==="tarea"?s.tarea[l]:s.plantilla[l])&&n(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:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("tarea","dependiente"),children:["Dependiente ",!s.tarea.dependiente&&"(No disponible)"]}),a.jsxs(p.ListItem,{icon:de.faArrowDownRight,iconColor:"neutral",onClick:()=>i("tarea","hija"),children:["Hija ",!s.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:de.faArrowUpLeft,iconColor:"neutral",onClick:()=>i("plantilla","dependiente"),children:["Dependiente ",!s.plantilla.dependiente&&"(No disponible)"]})]})})})]})})},ji=({data:e,id:t,selected:n})=>{const{expandedGroups:o}=_e(),[s,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 x=_e.getState().expandGroup;x&&x(t,h).catch(j=>{console.error("Error al re-expandir grupo:",j),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(),x=g.expandGroup,j=g.collapseGroup,w=o.has(t);w&&j?j(t):!w&&x&&await x(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 ${n?"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:s}),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:de.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:s,className:`tm-p-2 ${s?"tm-opacity-50":""} nopan nodrag`,icon:d?Se.faCompress:Se.faExpand})})]})]})},wi=(e,t,n,o)=>{const s=u.useRef(e),i=u.useRef(t);u.useEffect(()=>{s.current=e},[e]),u.useEffect(()=>{i.current=t},[t]);const{expandedGroups:r,groupTemplateData:l,toggleGroupExpansion:d,setGroupTemplateData:c,clearGroupTemplateData:m}=_e(),f=le.useQueryClient(),{getTemplateWithTasks:h}=js(),{hydrateTasks:g}=_s(),x=u.useCallback(async(y,v)=>{var S,O,L,E;try{await f.invalidateQueries({queryKey:["template",v]});const I=await h(v),N=(L=(O=(S=I==null?void 0:I.graph_layout)==null?void 0:S.snapshot)==null?void 0:O.nodes)==null?void 0:L.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(N&&N.length>0&&console.warn("⚠️ [expandGroup] Nodos sospechosos en API para plantilla",v,":",N),!((E=I==null?void 0:I.graph_layout)!=null&&E.snapshot))throw new Error(`No se encontraron datos de graph_layout en la plantilla: ${v}`);const X=I.graph_layout.snapshot.nodes||[],H=X.filter(T=>{var J,se;const Q=(J=T.data)==null?void 0:J.isInternal,Z=!!T.parentId,te=(se=T.id)==null?void 0:se.includes("-internal-"),re=Q||Z||te;return re&&console.warn("🗑️ [expandGroup] Filtrando nodo corrupto:",{id:T.id,type:T.type,esInterno:Q,tieneParentId:Z,tieneInternalEnId:te}),!re}),z={...I,graph_layout:{...I.graph_layout,snapshot:{...I.graph_layout.snapshot,nodes:H,edges:(I.graph_layout.snapshot.edges||[]).filter(T=>{var Q,Z;return!((Q=T.data)!=null&&Q.isInternal)&&!((Z=T.id)!=null&&Z.includes("-internal-"))})}}},F=X.length-H.length;F>0?console.warn(`⚠️ [expandGroup] Se filtraron ${F} nodos internos corruptos de la BD para plantilla ${v}`):console.log(`✅ [expandGroup] No se encontraron nodos corruptos en plantilla ${v}`);const G=await g(z),D={...z,hydratedNodes:G,nodes:G||z.graph_layout.snapshot.nodes||[],edges:z.graph_layout.snapshot.edges||[]},$=D.nodes,B=D.edges;if(!$||!B){console.error("❌ No se encontraron nodos o edges en la plantilla:",v);return}c(y,{nodes:$,edges:B,viewport:D.graph_layout.snapshot.viewport||{x:0,y:0,zoom:1}});const U=s.current.find(T=>T.id===y);if(!U){console.error("❌ No se encontró el nodo grupo:",y);return}const V=$.filter(T=>T.id!==y);let R=1/0,ae=1/0,ee=-1/0,A=-1/0;V.forEach(T=>{var ie,ye,pe,be,Ee,we;const Q=((ie=T.position)==null?void 0:ie.x)||0,Z=((ye=T.position)==null?void 0:ye.y)||0,te=typeof((pe=T.style)==null?void 0:pe.width)=="number"?T.style.width:((be=T.measured)==null?void 0:be.width)||268,re=typeof((Ee=T.style)==null?void 0:Ee.height)=="number"?T.style.height:((we=T.measured)==null?void 0:we.height)||111,J=Q-te/2,se=Q+te/2,ce=Z,me=Z+re;R=Math.min(R,J),ae=Math.min(ae,ce),ee=Math.max(ee,se),A=Math.max(A,me)});const K=80,Y=60,k=ee-R,P=A-ae,W=k+K*2,_=P+K*2+Y,C=$.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,te=Q-R+K,re=Z-ae+K+Y,J=T.type==="start"||T.id==="start",se=J?{...T.data,estatus:U.data.estatus,updatedAt:U.data.updatedAt,createdAt:U.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:te,y:re},style:{...T.style},data:se,draggable:!1,selectable:J,selected:!1,deletable:!1,connectable:!1,focusable:J,zIndex:999}}).filter(Boolean),q=B.map(T=>{const Q=C.some(re=>re&&re.id===`${y}-internal-${T.source}`),Z=C.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),M=C.find(T=>{var Q;return T&&((Q=T.data)==null?void 0:Q.originalNodeId)==="start"});M&&o(T=>T.map(Q=>Q.target===y?{...Q,target:M.id,targetHandle:"top-target",data:{...Q.data,redirectedToInternal:!0,originalTarget:y,originalTargetHandle:Q.targetHandle}}:Q)),d(y),n(T=>[...T.map(Z=>{if(Z.id===y){const{needsReExpansion:te,...re}=Z.data||{};return{...Z,style:{...Z.style,width:W,height:_},data:{...re,isExpanded:!0,expandedDimensions:{width:W,height:_}},zIndex:1e3}}return Z}),...C]),o(T=>[...T,...q])}catch(I){console.error("❌ Error al expandir el grupo:",I)}},[f,h,g,c,d,n,o]),j=u.useCallback(y=>{var N,X;const v=s.current,S=i.current,O=v.find(H=>H.id===y),L=((N=O==null?void 0:O.data)==null?void 0:N.templateId)||((X=O==null?void 0:O.data)==null?void 0:X.id),E=v.filter(H=>!H.id.startsWith(`${y}-internal-`)&&H.parentId!==y).map(H=>H.id===y?{...H,style:{...H.style,width:void 0,height:void 0},data:{...H.data,isExpanded:!1,expandedDimensions:void 0},zIndex:void 0}:H),I=S.filter(H=>!H.id.startsWith(`${y}-internal-`)).map(H=>{var z,F;if((z=H.data)!=null&&z.redirectedToInternal&&((F=H.data)==null?void 0:F.originalTarget)===y){const{redirectedToInternal:G,originalTarget:D,originalTargetHandle:$,...B}=H.data;return{...H,target:y,targetHandle:$||H.targetHandle,data:B}}return H});n(E),o(I),d(y),m(y),L&&f.invalidateQueries({queryKey:["template",L]})},[n,o,d,m,f]),w=u.useCallback(async(y,v)=>{r.has(y)?j(y):await x(y,v)},[r,x,j]),b=u.useCallback(y=>r.has(y),[r]);return{expandGroup:x,collapseGroup:j,toggleGroup:w,isGroupExpanded:b,groupTemplateData:l}},vi=()=>{const{getNodes:e,setNodes:t,screenToFlowPosition:n,setCenter:o}=oe.useReactFlow(),{copiedNodes:s,setCopiedNodes:i,getViewMode:r}=_e(),{activeTemplate:l,setActiveTemplate:d}=qe(),{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)}`,[]),x=u.useCallback(()=>e().filter(E=>E.selected).filter(E=>!(E.type==="start"||E.id==="start"||E.type==="group")),[e]),j=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 S=x();if(S.length===0){const L=e().filter(E=>E.selected);if(L.length>0){const E=L.some(N=>N.type==="group"),I=L.some(N=>N.type==="start"||N.id==="start");E?p.toast.error("Las plantillas conectadas no pueden ser copiadas"):I&&p.toast.error("El nodo de inicio no puede ser copiado")}else p.toast.error("No hay tareas seleccionadas para copiar");return}const O=S.map(L=>{const{selected:E,...I}=L;return{...I,data:{...I.data,_originalTemplateId:l.id}}});i(O),p.toast.success(`${S.length} ${S.length===1?"tarea copiada":"tareas copiadas"} con éxito`)},[h,l,x,e,i]),w=u.useCallback(async S=>{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(s.length===0){p.toast.error("No hay tareas copiadas para pegar");return}const O=e();let L={x:0,y:0};if(S)L=n({x:S.x,y:S.y});else if(O.length>0){const F=O.reduce((D,$)=>D+$.position.x,0)/O.length,G=O.reduce((D,$)=>D+$.position.y,0)/O.length;L={x:F+50,y:G+100}}const E=s[0],I=L.x-E.position.x,N=L.y-E.position.y,X=s.map((F,G)=>{const D=g(),$=-(Date.now()+G),B=F.data.plantilla&&typeof F.data.plantilla=="object"?{...F.data.plantilla,id:l.id}:{id:l.id},{id:U,...V}=F.data,R={...V,id:$,reference_graph:D,plantilla:B,parent:{data:{id:null}},_originalTemplateId:void 0};return{...F,id:D,position:{x:F.position.x+I,y:F.position.y+N},data:R,selected:!0}}),z=[...O.map(F=>({...F,selected:!1})),...X];if(t(z),l.id)try{const F=await m(l.id);if(!F)return;const G=X.filter($=>$.type!=="start"&&$.type!=="group").map($=>{const B=$.data;return{id:B.id,reference_graph:$.id,nombre:B.nombre||B.texto_corto||"Tarea sin nombre",texto_corto:B.texto_corto||"",texto_largo:B.texto_largo||"",prioridad:B.prioridad??0,nivel_dificultad:B.nivel_dificultad??0,dias_duracion:B.dias_duracion??0,plantilla:{id:l.id},parent:{data:{id:null}},tareas:[],plantilla_dependents:B.plantilla_dependents||[],start:B.start||!1,es_grupo:B.es_grupo||!1,optional:B.optional||!1,subtask_completadas:B.subtask_completadas||0,subtask_totales:B.subtask_totales||0}}),D={...F,tarea_plantillas:[...F.tarea_plantillas,...G],estatus:"dirty",updatedAt:new Date().toISOString()};await f(l.id,D),d(D),setTimeout(async()=>{await c(l.id,{nodes:z,edges:[]})},50)}catch(F){console.error("Error al actualizar template en IndexedDB:",F)}if(X.length>0){const F=X.reduce((D,$)=>D+$.position.x,0)/X.length,G=X.reduce((D,$)=>D+$.position.y,0)/X.length;o(F,G,{zoom:1,duration:800})}p.toast.success(`${X.length} ${X.length===1?"tarea pegada":"tareas pegadas"} con éxito`)},[h,l,s,e,t,n,o,g,c,m,f,d]),b=u.useCallback(()=>s.length>0,[s]),v=x().length>0;return{handleCopy:j,handlePaste:w,hasCopiedNodes:b,hasSelectableNodes:v,copiedNodesCount:s.length}},_i={main:di,plus:ui,start:gi,group:ji},Ti=[.5,0],Ni=({initialNodes:e,initialEdges:t,debugEvents:n=!1})=>{var we,Ue;const o=u.useRef(null),{nodes:s,edges:i,onEdgesChange:r,onConnect:l,onConnectEnd:d,onBeforeDelete:c,onDeleteNode:m,onEdgesDelete:f,handleNodesChange:h,newNodePopup:g,getParentNodeInfo:x,createNodeFromPopup:j,closeNewNodePopup:w,connectionPopup:b,createConnectionFromPopup:y,closeConnectionPopup:v,onDragEnd:S,setNodes:O,setEdges:L}=bi({initialNodes:e,initialEdges:t}),{expandGroup:E,collapseGroup:I}=wi(s,i,O,L),{handleCopy:N,handlePaste:X,hasCopiedNodes:H,copiedNodesCount:z}=vi();u.useEffect(()=>{if(!n)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.")}},[n]);const G=s.filter(ge=>!(!ge.selected||ge.type==="start"||ge.id==="start"||ge.type==="group")).length,D=G>0,$=u.useRef(E),B=u.useRef(I);u.useEffect(()=>{$.current=E,B.current=I},[E,I]),u.useEffect(()=>{const ge=async(he,Ie)=>{$.current&&await $.current(he,Ie)},ue=he=>{B.current&&B.current(he)};_e.setState({expandGroup:ge,collapseGroup:ue})},[]);const{getViewMode:U,setFlowViewportForTemplate:V}=_e(),{activeTemplate:R}=qe(),ae=(R==null?void 0:R.id)??null,ee=_e(ge=>ae!=null?ge.flowViewportByTemplateId[ae]:void 0),A=u.useMemo(()=>{var ue,he;if(ae==null)return;if(ee)return ee;const ge=(he=(ue=R==null?void 0:R.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}},[ae,ee,(Ue=(we=R==null?void 0:R.graph_layout)==null?void 0:we.snapshot)==null?void 0:Ue.viewport]),K=u.useCallback((ge,ue)=>{ae!=null&&V(ae,ue)},[ae,V]),{zoomPercentage:Y,handleZoomIn:k,handleZoomOut:P,handleZoomTo100:W,handleDoubleClick:_}=fi({reactFlowWrapper:o,nodes:s,resetZoomHistoryKey:ae}),q=(R!=null&&R.id?U(R.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(),N()),(ue.ctrlKey||ue.metaKey)&&ue.key==="v"&&(ue.preventDefault(),X()))};return document.addEventListener("keydown",ge),()=>{document.removeEventListener("keydown",ge)}},[N,X,q]);const M=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=s.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&&h(ue)},[h,s]),Q=q?void 0:r,Z=q?void 0:T,te=q?void 0:l,re=q?void 0:d,J=q?void 0:c,se=q?void 0:S,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},Ee=()=>{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:s,edges:i,nodeTypes:_i,onEdgesChange:Q,onNodesChange:Z,onConnect:te,onConnectEnd:re,onBeforeDelete:J,onNodeDragStop:se,onNodesDelete:ce,onEdgesDelete:me,onNodeClick:M,onMoveEnd:K,...be,...A?{defaultViewport:A,fitView:!1}:{fitView:!0,fitViewOptions:{padding:2}},nodeOrigin:Ti,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:[R.estatusFromStrapi===Pe.PUBLISHED&&a.jsx(p.Tag,{color:"success",label:"Publicado"}),R.estatusFromStrapi===Pe.DRAFT&&a.jsx(p.Tag,{color:"warning",label:"Borrador"})]}),!q&&G>0&&a.jsxs("p",{className:"tm-text-blue-dark-500 tm-text-xs tm-font-medium",children:[G," ",G===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:de.faCopy,onClick:N,disabled:!D,size:"xxs",color:D?"primary":"secondary",title:D?`Copiar ${G} ${G===1?"tarea":"tareas"} (Ctrl+C)`:"Selecciona tareas para copiar (mantén Shift y haz clic)",children:["Copiar ",G>0&&`(${G})`]}),a.jsxs(p.Button,{leftSlot:de.faFile,size:"xxs",onClick:()=>X(),disabled:!H(),color:H()?"primary":"secondary",title:H()?`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:de.faMinus,onClick:P,color:"secondary"}),a.jsxs(p.Button,{onClick:W,onDoubleClick:_,color:"secondary",children:[Y,"%"]}),a.jsx(p.Button,{icon:de.faPlus,onClick:k})]})]})})]},ae??"flow-none"),g&&a.jsx(pi,{isOpen:g.isOpen,position:g.position,onClose:w,createNodeFromPopup:j,parentNodeInfo:x()}),b&&a.jsx(yi,{isOpen:b.isOpen,onClose:v,createConnectionFromPopup:y,availableConnections:Ee()})]})},Ci=({initialNodes:e,initialEdges:t,debugEvents:n})=>a.jsx(oe.ReactFlowProvider,{children:a.jsx(Ni,{initialNodes:e,initialEdges:t,debugEvents:n})}),lt=Qe.create(e=>({step:1,setStep:t=>e({step:t}),reset:()=>e({step:1})})),Si=({limit:e})=>{const t=lt(r=>r.step),n=lt(r=>r.setStep),o=u.useCallback(()=>{t<e&&n(t+1)},[t,n,e]),s=u.useCallback(()=>{t>1&&t<=e&&n(t-1)},[t,n,e]),i=u.useCallback(r=>{r>0&&r<=e&&n(r)},[n,e]);return u.useMemo(()=>({step:t,nextStep:o,prevStep:s,onStepChange:i}),[t,o,s,i])},Aa=["fase_plantilla","tipo_plantilla","categoria","tipo_medio","medio_especifico","pertenencia_medio","ubicacion_medio","responsable_impresion"],Pa=["fase_plantilla","modo_configuracion","tipo_medio","formato_salida"],Da=["tipo_medio","formato_salida","medio_especifico"],Ia={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"]}}},Fa={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 Zt(e){const[t,n]=u.useState([]),[o,s]=u.useState({}),{setClaveParams:i,templateFormData:r,setTemplateFormData:l,resetTemplateFormData:d,setDisableField:c,setClave:m,claveParams:f,setParamTipo:h}=Le(),{tasks_api:g}=fe(),x=lt(A=>A.step),{data:j,error:w,isSuccess:b,isError:y}=le.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}),K=await g.get(`/api/params-tipos?${A}`);return K.data?{paramsTiposPlantilla:je(K.data.data)}:{paramsTiposPlantilla:[]}},refetchOnWindowFocus:!1});u.useEffect(()=>{w&&y&&console.log(w)},[w,y]),u.useEffect(()=>{if(j&&b){const A=j.paramsTiposPlantilla;n(A)}},[j,b]);const v={fase_plantilla:(A,K)=>{l({fase_plantilla:A}),h({fase_plantilla:K})},tipo_plantilla:(A,K)=>{l({tipo_plantilla:A}),h({tipo_plantilla:K})},modo_configuracion:(A,K)=>{l({modo_configuracion:A}),h({modo_configuracion:K})},categoria:(A,K)=>{l({categoria:A}),h({categoria:K})},formato_salida:(A,K)=>{l({formato_salida:A}),h({formato_salida:K})},tipo_medio:(A,K)=>{l({tipo_medio:A}),h({tipo_medio:K})},medio_especifico:(A,K)=>{l({medio_especifico:A}),h({medio_especifico:K})},responsable_impresion:(A,K)=>{l({responsable_impresion:A}),h({responsable_impresion:K})},pertenencia_medio:(A,K)=>{l({pertenencia_medio:A}),h({pertenencia_medio:K})},ubicacion_medio:(A,K)=>{l({ubicacion_medio:A}),h({ubicacion_medio:K})}},S={fase_plantilla:(A,K)=>i({field:A,value:K}),tipo_plantilla:(A,K)=>i({field:A,value:K}),categoria:(A,K)=>i({field:A,value:K}),tipo_medio:(A,K)=>i({field:A,value:K}),medio_especifico:(A,K)=>i({field:A,value:K}),responsable_impresion:(A,K)=>i({field:A,value:K}),pertenencia_medio:(A,K)=>i({field:A,value:K}),ubicacion_medio:(A,K)=>i({field:A,value:K})},O={Digital:{execute:()=>{const A=t.filter(k=>k.step===3).find(k=>k.key==="responsable_impresion").params_plantillas.find(k=>k.name==="N/A").id,K="step3.responsable_impresion",Y=["responsable_impresion"];l({responsable_impresion:"N/A"}),e(K,A),c({fields:Y,value:!0}),i({field:"responsable_impresion",value:"NA"})}},Impreso:{execute:()=>{const A="step3.responsable_impresion",K=["responsable_impresion"];l({responsable_impresion:""}),e(A,""),c({fields:K,value:!1}),i({field:"responsable_impresion",value:""})}}},L={"Sitios Fijos":{execute:()=>z()},"Vallas Móviles":{execute:()=>F()},Indoors:{execute:()=>z()},Camiones:{execute:()=>G()},"Brand Riders":{execute:()=>G()}},E={"Sitios Fijos":{execute:()=>H()},"Vallas Móviles":{execute:()=>H()},Indoors:{execute:()=>H()},Camiones:{execute:()=>{X(),O.Impreso.execute()}},"Brand Riders":{execute:()=>{X(),O.Impreso.execute()}}},I={"Sitios Fijos":{execute:()=>N()},"Vallas Móviles":{execute:()=>X()},Indoors:{execute:()=>N()},Camiones:{execute:()=>X()},"Brand Riders":{execute:()=>X()}},N=()=>{const A=["medio_especifico"],K=r.modo_configuracion,Y=`step${x}.medio_especifico`,k=`step${x}.formato_salida`;c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0}),c(K==="Default"?{fields:A,value:!0}:{fields:A,value:!1}),l({medio_especifico:""}),l({formato_salida:""}),e(Y,""),e(k,""),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`,k=["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:k,value:!0})},H=()=>{const A=["formato_salida"],K=`step${x}.formato_salida`,Y={};Y.formato_salida="",l(Y),e(K,""),c({fields:A,value:!1})},z=()=>{const A=["formato_salida","medio_especifico"],K=`step${x}.formato_salida`,Y={};Y.formato_salida="",l(Y),e(K,""),c({fields:A,value:!1})},F=()=>{const A=["formato_salida"],K=["medio_especifico"],Y=`step${x}.formato_salida`,k=`step${x}.medio_especifico`,P={};P.formato_salida="",P.medio_especifico="",l(P),e(Y,""),e(k,""),c({fields:A,value:!1}),c({fields:K,value:!0})},G=()=>{const A=t.filter(P=>P.step===x).find(P=>P.key==="formato_salida").params_plantillas.find(P=>P.name==="Impreso").id,K=`step${x}.formato_salida`,Y=`step${x}.medio_especifico`,k=["formato_salida","medio_especifico"];l({formato_salida:"Impreso"}),e(K,A),e(Y,""),c({fields:k,value:!0}),O.Impreso.execute()},D=(A,K)=>{Object.keys(Ia).includes(A)&&Ia[A][K].fieldsToClear.forEach(P=>{const W={};W[P]="",l(W),i({field:P,value:""}),e&&[...new Set(t.map(C=>C.step))].forEach(C=>{const q=`step${C}.${P}`;e(q,"")})})},$=(A,K,Y)=>A==="modo_configuracion"&&Y?Fa[A][Y][K].fieldsToEnableDisable:Fa[A][K].fieldsToEnableDisable,B=A=>t.filter(K=>K.step===A),U=A=>{var K;return o[A]||((K=t.find(Y=>Y.key===A))==null?void 0:K.params_plantillas)},V=(A,K)=>{var k,P,W,_;let Y=[];A==="Sitios Fijos"?K==="Preventa"?Y=(k=t.find(C=>C.key==="medio_especifico"))==null?void 0:k.params_plantillas.filter(C=>C.tipomedio_nombre==="OOH"&&C.name==="PANTALLA DIGITAL"):K==="Venta"&&(Y=(P=t.find(C=>C.key==="medio_especifico"))==null?void 0:P.params_plantillas.filter(C=>C.tipomedio_nombre==="OOH")):A==="Indoors"?Y=(W=t.find(C=>C.key==="medio_especifico"))==null?void 0:W.params_plantillas.filter(C=>C.tipomedio_nombre==="InDoor"):Y=(_=t.find(C=>C.key==="medio_especifico"))==null?void 0:_.params_plantillas,s(C=>({...C,medio_especifico:Y}))},R=(A,K)=>{const Y=A.key;if(Da.includes(Y)&&Y==="tipo_medio"){const k=K.label,P=r.fase_plantilla,W=r.modo_configuracion;if(P==="Preventa"){V(k,P);return}else if(W==="Especifico"){V(k,P);return}}},ae=(A,K,Y)=>{const k=A.params_plantillas.find(P=>A.key==="categoria"?P.reference_id===K.value:P.id===K.value);if(k){const P=A.key,W=K.label;if(v[P](W,Y),Pa.includes(P))if(D(P,W),P==="fase_plantilla"){const _=W,C=$(P,_);c({fields:["categoria","modo_configuracion","tipo_plantilla"],value:!0}),C.length>0&&c({fields:C,value:!1}),_==="Preventa"&&c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(P==="modo_configuracion"){const _=W,C=r.fase_plantilla,q=$(P,_,C);c({fields:["medio_especifico","formato_salida"],value:!0}),q.length>0&&c({fields:q,value:!1}),C==="Preventa"&&c({fields:["pertenencia_medio","ubicacion_medio","responsable_impresion"],value:!0})}else if(P==="tipo_medio"){const _=W,C=r.modo_configuracion;r.fase_plantilla==="Venta"?C==="Especifico"?L[_].execute():E[_].execute():I[_].execute()}else if(P==="formato_salida")O[W].execute();else{const _=$(P,W);_.length>0&&c({fields:_,value:!1})}if(Aa.includes(P)){let _="",C="";if(P==="formato_salida"){const q=r.modo_configuracion,M=W;C="tipo_medio",_=q==="Default"&&M==="Digital"?_="DDG":_="DRP"}else C=P,_=k.abbreviation;S[C](C,_)}Da.includes(P)&&R(A,K)}},ee=()=>{if(r){const A=r.fase_plantilla;if(A==="Preventa"){const K=r.modo_configuracion,Y=f.fase_plantilla||"XX";let k=null;if(K==="Default")k=f.tipo_medio||"XXX";else{const W=r.tipo_medio;["Vallas Móviles","Camiones","Brand Riders"].includes(W)?k=f.tipo_medio||"XXX":k=f.medio_especifico||"XXX"}const P=`${Y}-${k}`;m(P)}if(A==="Venta"){const K=f.fase_plantilla||"XX",Y=f.tipo_plantilla||"XXX",k=f.categoria||"XX",P=f.medio_especifico||f.tipo_medio||f.modo_configuracion||"XXX",W=f.responsable_impresion||"XX",_=f.pertenencia_medio||"X",C=f.ubicacion_medio||"X",q=`${K}-${Y}-${k}-${P}-${W}-${_}-${C}`;m(q)}}};return u.useEffect(()=>{ee()},[f]),{templateFields:t,getFieldsByStep:B,dropdownFunctionsUpdateClave:S,fieldsForUpdateClave:Aa,resetTemplateFormData:d,fieldsWithDisableTrigger:Pa,getFieldsToDisable:$,handleOptionSelected:ae,getFilteredOptions:U,dropdownFunctionsUpdateFormData:v}}const ea=()=>{const{control:e,setValue:t}=Ae.useFormContext(),n=lt(c=>c.step),{getFieldsByStep:o,handleOptionSelected:s,getFilteredOptions:i}=Zt(t),{disabledFields:r}=Le(),l=u.useMemo(()=>o(n),[n,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(x=>({label:x.name,value:c.key==="categoria"?x.reference_id:x.id}));return a.jsx(Ae.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:j}})=>a.jsx("div",{children:a.jsx(p.Dropdown,{label:f,value:x.value,onValueChange:w=>{x.onChange(w)},error:j==null?void 0:j.message,options:g,onOptionSelect:w=>{s(c,w,c.id)},disabled:r[c.key]||!1})})},c.id)})},Ei=()=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:a.jsx(ea,{})}),Ai=()=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:a.jsx(ea,{})}),Pi=()=>a.jsx("div",{className:"tm-flex tm-flex-col tm-gap-y-4",children:a.jsx(ea,{})}),Di=({step:e})=>a.jsxs("div",{className:"tm-flex tm-min-h-[270px] tm-flex-col tm-gap-y-4",children:[e===1&&a.jsx(Ei,{}),e===2&&a.jsx(Ai,{}),e===3&&a.jsx(Pi,{})]}),Ii=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((n,o)=>{const s=`step${o.step}`,i=t[s];return i&&i.includes(o.key)&&(n[s]||(n[s]={}),n[s][o.key]=""),n},{})},Fi=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"]},n={};return Object.keys(t).forEach(o=>{n[o]={},t[o].forEach(s=>{var r;const i=(r=e[o])==null?void 0:r[s];n[o][s]=i!==void 0?i:""})}),n},Mi=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 ki(e,t){const{clave:n,paramsTipo:o,currentTemplateForEdit:s,isEditTemplate:i,setDisableField:r,setClaveParams:l,isDuplicateTemplate:d,templateFormData:c}=Le(),{tasks_api:m}=fe(),{getFieldsByStep:f,dropdownFunctionsUpdateFormData:h,templateFields:g}=Zt(),x=()=>{var L;try{const E={},I=e(),N=Fi(I),{step1:X}=N,H=[];E.clave=n,X.categoria!=""&&(E.categoria=X.categoria);for(const[z,F]of Object.entries(N))for(const[G,D]of Object.entries(F)){const $={id:null,params_tipo:{id:null}};if(D!=""){const B=o[G];if(G==="categoria"){const U=g.find(R=>R.key==="categoria"),V=(L=U==null?void 0:U.params_plantillas)==null?void 0:L.find(R=>R.reference_id===D);$.id=V==null?void 0:V.id}else $.id=D;$.params_tipo.id=B,H.push($)}}return Object.keys(H).length>0&&(E.params_plantillas=H),E}catch(E){console.log(E)}},j=async L=>{var E;try{let I=null;return i?I=await m.put(`/api/plantillas/${s.id}`,{data:L}):I=await m.post("/api/plantillas",{data:L}),I.data?je(I.data):null}catch(I){throw console.error("Error en saveTemplateToStrapi:",{error:I.message,status:(E=I.response)==null?void 0:E.status}),I}},w=async L=>{var E;try{const I=De.stringify({filters:{plantilla:{id:L}},populate:{graph_layout:!0}},{encodeValuesOnly:!0}),N=await m.get(`/api/plantillas/plantilla-tareas-grafico?${I}`);return N.data?je(N.data.data):null}catch(I){throw console.error("Error en getTemplateWithTasks:",{error:I.message,status:(E=I.response)==null?void 0:E.status}),I}},b=async(L,E,I)=>{var N,X,H,z,F,G,D;try{const $=await w(L),B=await w(E);if(!$||!$.tarea_plantillas)return console.warn("No se encontraron tareas para duplicar en la plantilla original"),null;const U=new Map,V=new Map;let R=1;$.tarea_plantillas.forEach(Y=>{let k=null;Y.start?k=I:k=-(Date.now()+R++),U.set(Y.id,k)}),(X=(N=$.graph_layout)==null?void 0:N.snapshot)!=null&&X.nodes&&$.graph_layout.snapshot.nodes.forEach(Y=>{const k=`node-${Date.now()}-${Math.random().toString(36).substr(2,9)}`;V.set(Y.id,k)});const ae=$.tarea_plantillas.filter(Y=>!Y.start).map(Y=>{var P,W,_,C;return{id:U.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:E,clave:$.clave,categoria:$.categoria||{id:0,nombre:"Sin categoría"}},plantilla_dependents:[],id_t_requerida:U.get((_=Y.id_t_requerida)==null?void 0:_.id)||null,ids_t_dependientes:[],tarea_padre:U.get((C=Y.tarea_padre)==null?void 0:C.id)||null,tareas:[]}});let ee=null;if($.graph_layout){const Y=B.tarea_plantillas.find(k=>k.start===!0);ee={...$.graph_layout,id:(H=B.graph_layout)==null?void 0:H.id,snapshot:{...$.graph_layout.snapshot,edges:$.graph_layout.snapshot.edges.map(k=>{if(k.source==="start")return{...k,data:{...k.data,childId:ae.find(P=>P.reference_graph===k.target).id,parentId:Y.id}};{const P=ae.find(W=>W.reference_graph===k.target);return{...k,data:{...k.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:((F=(z=$.graph_layout.snapshot)==null?void 0:z.nodes)==null?void 0:F.map(k=>{let P={};return k.type==="start"?P={...k,data:{...k.data,tareaId:Y.id}}:P={...k,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:ae,updated:[],deleted:[]}},K=await m.post("/api/tareas/save-tareas-grafico",{data:A});if(K.data&&K.status===200){const Y=await w(E),k=new Map;Y.tarea_plantillas.forEach(_=>k.set(_.reference_graph,_.id));let P=Y.graph_layout;return(!((G=P==null?void 0:P.snapshot)!=null&&G.nodes)||P.snapshot.nodes.length===0)&&(console.log("Graph layout vacío, reconstruyendo desde el original..."),P=ee),(D=P==null?void 0:P.snapshot)!=null&&D.nodes&&(P.snapshot.nodes=P.snapshot.nodes.map(_=>{var T;const C={..._,position:_.position||{x:0,y:0}},q=C.id,M=k.get(q);if(M)return{...C,data:{...C.data,id:M,tareaId:M}};if((T=C.data)!=null&&T.tareaId){const Q=Y.tarea_plantillas.find(Z=>Z.reference_graph===q);if(Q)return{...C,data:{...C.data,id:Q.id,tareaId:Q.id}}}return C})),await m.put(`/api/plantillas/${E}`,{data:{graph_layout:P}}),await w(E)}return null}catch($){throw console.error("Error al duplicar las tareas de la plantilla:",$),$}},y=async()=>{var L,E;try{const I=x(),N=await j(I);if(!N)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:N.id}},populate:{tarea_plantillas:{filters:{start:{$eq:!0}}}}},{encodeValuesOnly:!0}),{data:H}=await m.get(`/api/plantillas?${X}`),F=je(H.data)[0].tarea_plantillas[0].id;if(d&&(s!=null&&s.id))try{const D=await b(s.id,N.id,F);return D?{success:!0,message:"Flujo de trabajo duplicado completamente con todas sus tareas",data:D}:{success:!0,message:"Flujo de trabajo creado, pero no se pudieron duplicar las tareas",data:await w(N.id)}}catch(D){return console.error("Error al duplicar tareas:",D),{success:!0,message:"Flujo de trabajo creado, pero hubo un error al duplicar las tareas",data:await w(N.id)}}const G=await w(N.id);return G?{success:!0,message:"Flujo de trabajo creado y sincronizado completamente",data:G}:{success:!1,message:"No se pudieron obtener los datos completos del flujo de trabajo",error:"completeData es null"}}catch(I){const N=Mi(((E=(L=I==null?void 0:I.response)==null?void 0:L.data)==null?void 0:E.error)||I);return console.error("Error al guardar el flujo de trabajo: ",{level:N.failureLevel,message:N.errorMessage,technicalDetails:N.technicalDetails}),{success:!1,message:N.errorMessage||"Error al guardar el flujo de trabajo",error:N.technicalDetails||I.message}}},v=()=>{const L=s==null?void 0:s.params_plantillas;if(!(L!=null&&L.length))return;const E={};[1,2,3].forEach(N=>{const X=`step${N}`;E[X]={},f(N).forEach(z=>{var G;const F=L.find(D=>D.params_tipo.key===z.key);if(F){let D=null;if(z.key==="categoria"){const $=(G=z.params_plantillas)==null?void 0:G.find(B=>B.id===F.id);D=($==null?void 0:$.reference_id)||F.id}else D=F.id;E[X][z.key]=D}})}),t(E)},S=()=>{var E;const L=s==null?void 0:s.params_plantillas;if(L!=null&&L.length)for(const I of L){const{params_tipo:{id:N,key:X},name:H,id:z}=I,F=g.find(D=>D.key===X),G=(E=F==null?void 0:F.params_plantillas)==null?void 0:E.find(D=>D.id===z);h[X]&&h[X](H,N),G&&l({field:X,value:G.abbreviation})}},O=()=>{try{const{fase_plantilla:L,modo_configuracion:E,formato_salida:I,tipo_medio:N}=c;if(L==="Venta")r({fields:["fase_plantilla","tipo_plantilla","modo_configuracion","categoria","tipo_medio"],value:!1}),E==="Default"?(r({fields:["tipo_medio","formato_salida"],value:!1}),r({fields:["medio_especifico"],value:!0}),["Sitios Fijos","Vallas Móviles","Indoors"].includes(N)||r({fields:["formato_salida","medio_especifico"],value:!0}),I==="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(N)&&r({fields:["formato_salida","medio_especifico"],value:!1}),["Vallas Móviles"].includes(N)&&(r({fields:["formato_salida"],value:!1}),r({fields:["medio_especifico"],value:!0})),["Camiones","Brand Riders"].includes(N)&&r({fields:["formato_salida","medio_especifico"],value:!0}),I==="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}),E=="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(N)?(r({fields:["formato_salida"],value:!0}),r({fields:["medio_especifico"],value:!1})):r({fields:["responsable_impresion","pertenencia_medio","ubicacion_medio"],value:!0})}catch(L){console.error("Error al aplicar reglas de habilitar y deshabilitar campos",L)}};return u.useEffect(()=>{(i||d)&&s&&(v(),S())},[i,d,s]),u.useEffect(()=>{(i||d)&&c&&O()},[i,c,d]),{savePlantilla:y,getTemplateWithTasks:w}}const Li=()=>{const{watch:e,getValues:t}=Ae.useFormContext(),{templateFormData:n,isDuplicateTemplate:o,currentTemplateForEdit:s}=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&&s){const h=setTimeout(()=>{l.current=t(),d.current={...n},c.current=!0,r(!1)},500);return()=>clearTimeout(h)}},[o,s,t,n]),u.useEffect(()=>{if(l.current&&d.current&&c.current){const h=t(),g=n,x=JSON.stringify(h)!==JSON.stringify(l.current),j=JSON.stringify(g)!==JSON.stringify(d.current);r(x||j)}},[m,n,t]),{hasChanges:i,resetChanges:()=>{l.current=null,d.current=null,c.current=!1,r(!1)}}},Oi=({onReset:e})=>{const{hasChanges:t,resetChanges:n}=Li(),{setHasFormChanges:o}=Le();return u.useEffect(()=>{o(t)},[t,o]),u.useEffect(()=>{e(n)},[e,n]),null},Bi=({isOpen:e,onClose:t})=>{const{step:n,nextStep:o,prevStep:s,onStepChange:i}=Si({limit:3}),r=lt(P=>P.reset),{templateFields:l,resetTemplateFormData:d}=Zt(),{clave:c,resetClave:m,resetDisabledFields:f,isEditTemplate:h,setIsEditTemplate:g,refetch:x,isDuplicateTemplate:j,hasFormChanges:w,setIsDuplicateTemplate:b,setCurrentTemplateForEdit:y}=Le(),{openTemplate:v}=$e(),[S,O]=u.useState(!1),[L,E]=u.useState(""),[I,N]=u.useState(!1),X=u.useRef(null),H=P=>{X.current=P},z=u.useMemo(()=>Ii(l),[l]),F=n===1,G=n===3,D=F?"Cancelar":"Atrás",$=Ae.useForm({mode:"onChange",defaultValues:z}),{trigger:B,reset:U,clearErrors:V,getValues:R}=$,{savePlantilla:ae}=ki(R,U),ee=u.useRef(!1);u.useEffect(()=>{e&&(r(),ee.current=!1)},[e,r]),u.useEffect(()=>{e&&!h&&!j&&!ee.current&&(U(z),d(),ee.current=!0)},[e,h,j,U,z,d]);const A=async()=>{if(await B()){if(n===3){if(!w&&j){E("Ya existe un proceso con éstos parámetros. Modifica al menos uno para poder duplicarlo."),N(!0);return}try{O(!0);const W=await ae();if(W.success){const _=W.data;if(k(),Y(),N(!1),!h)try{await v({template:_,statusTemplate:Te.NEW})}catch(C){console.warn("La plantilla se creó exitosamente pero hubo un problema al abrirla:",C)}x()}else{const{error:_}=W;E(_),N(!0)}}catch(W){console.error("Error inesperado al guardar la plantilla:",W);return}finally{O(!1)}}o()}},K=()=>{E(""),N(!1)},Y=()=>{V(),U(z),d(),f(),m(),K(),g(!1),b(!1),y(null),X.current&&X.current()},k=()=>{Y(),ee.current=!1,t(),console.log("cerrar modal")};return S?a.jsx(dt,{isLoading:S}):a.jsxs(Ae.FormProvider,{...$,children:[a.jsx(Oi,{onReset:H}),a.jsx(p.Modal,{isOpen:e,closeAtCancel:!1,onSuccess:A,cancelButtonText:D,successButtonText:G?h?"Guardar":"Crear":"Continuar",onCancel:F?k:s,onClose:k,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:n-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:[I&&a.jsx(p.Alert,{open:!0,color:"danger",message:L,className:"tm-mb-6",onClose:K}),a.jsx(Di,{step:n})]})]})})]})},Ri=({isOpen:e,onClose:t,replaceTemplate:n})=>a.jsx(a.Fragment,{children:a.jsx(p.Modal,{isOpen:e,closeAtCancel:!1,cancelButtonText:"Cancelar",successButtonText:"Abrir",onCancel:t,onClose:t,onSuccess:n,size:"sm",iconConfig:{icon:de.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:de.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."})})]})})})}),zi=Qe.create(e=>({cachedTemplate:null,canCreateTemplate:!1,setCachedTemplate:t=>e({cachedTemplate:t}),clearCachedTemplate:()=>e({cachedTemplate:null}),setCanCreateTemplate:t=>{const n=!(t<5);e({canCreateTemplate:n})}})),qi=({isOpen:e,onClose:t,discardChanges:n,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:de.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:de.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:()=>{n(),t()},children:"Descartar cambios"})})]})})})}),Is=({isOpen:e,onClose:t,publishTemplate:n})=>a.jsx(p.Modal,{isOpen:e,closeAtCancel:!0,cancelButtonText:"Cancelar",successButtonText:"Confirmar",onCancel:t,onClose:t,onSuccess:n,size:"sm",iconConfig:{icon:de.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:de.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."})})]})})}),$i=()=>{const e="grid",t="create-edit",n=u.useRef(null),{isOpenModalLimit:o,setIsOpenModalLimit:s,setOpenModalCreateTemplate:i,openModalCreateTemplate:r,setOpenModalUnsavedChanges:l,openModalUnsavedChanges:d,openModalPublishTemplate:c,setOpenModalPublishTemplate:m,setCurrentTemplateForEdit:f,setIsDuplicateTemplate:h,setIsEditTemplate:g}=Le(),{removeTemplateStates:x}=ct(),{mode:j,setMode:w,setViewMode:b,getViewMode:y}=_e(),{setCanCreateTemplate:v,canCreateTemplate:S}=zi(),O=j===e,{screens:L,get:E,delete:I,activeTemplate:N,activateTemplate:X,reorderingTemplates:H,replaceTemplate:z,saveTemplateChanges:F,publishTemplate:G,loadingPublishTemplate:D,loadingSaveChanges:$}=$e(),B=178,[U,V]=u.useState([]),[R,ae]=u.useState([]),[ee,A]=u.useState(null),[K,Y]=u.useState(!1),k=N!=null&&N.id?y(N.id):"readonly";u.useEffect(()=>{const J=()=>{if(!n.current)return;const ce=n.current.offsetWidth;let me=0;const ie=[],ye=[],pe=10,be=n.current.querySelector("button:not([data-screen])"),Ee=n.current.querySelector(".tm-mx-1");let we=0;be&&(we+=be.getBoundingClientRect().width),Ee&&L.length>0&&(we+=Ee.getBoundingClientRect().width,we+=pe);const Ue=(ue,he)=>{const Oe=he?54:0,mt=(ue==null?void 0:ue.length)*8;return Math.max(80,mt+40+Oe)},ge=ce-B-we;L.forEach((ue,he)=>{const Ie=!!(ue.isNew||ue.badgeLabel),xe=Ue(ue.clave,Ie),Be=he>0?pe:0,Oe=xe+Be;me+Oe<=ge?(ie.push(ue),me+=Oe):ye.push(ue)}),V(ie),ae(ye)},se=()=>{const ce=L.length;v(ce)};return L.length>0&&(J(),se(),window.addEventListener("resize",J)),()=>{window.removeEventListener("resize",J)}},[L,j]);const P=J=>J.estatus===Te.DIRTY||J.estatus===Te.NEW,W=async J=>{P(J)?(A(J.id),l(!0)):await I(J.id)},_=()=>m(!0),C=async()=>{await I(ee),await x(ee)},q=async()=>{await F(!1)},M=async()=>{await F()},T=()=>{var se,ce;const J=(ce=(se=N==null?void 0:N.graph_layout)==null?void 0:se.snapshot)==null?void 0:ce.nodes.length;Y(()=>J-1>=1)};u.useEffect(()=>{T()},[N,k]);const Q=()=>!((N==null?void 0:N.estatus)==Te.IDLE&&K&&N.estatusFromStrapi!==Pe.PUBLISHED),Z=()=>{var ce;const J=(ce=N==null?void 0:N.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})},te=()=>(N==null?void 0:N.estatus)===Te.IDLE||Z()?!0:!K,re=async()=>{await G(N.id)};return $||D?a.jsx(dt,{isLoading:$||D}):a.jsxs("div",{className:"tm-flex tm-gap-4 tm-justify-between tm-items-center tm-flex-wrap",children:[r&&a.jsx(Bi,{isOpen:r,onClose:()=>i(!1)}),o&&a.jsx(Ri,{isOpen:o,onClose:()=>s(!1),replaceTemplate:z}),d&&a.jsx(qi,{isOpen:d,onClose:()=>l(!1),discardChanges:C,saveAndExit:M}),c&&a.jsx(Is,{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:n,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:O?"primary":"secondary",onClick:()=>w(e),children:"Listado de flujos"}),L.length>0&&a.jsx(p.Separator,{vertical:!0,className:"tm-mx-1"}),L.filter(J=>U.some(se=>se.clave===J.clave)).map(J=>{const se=(N==null?void 0:N.clave)===J.clave&&j===t;return a.jsxs(p.Button,{"data-screen":J.clave,size:"xs",onClick:async()=>{await X(J),w(t,J.id)},color:se?"primary":"secondary",leftSlot:Se.faFilePen,badgeColor:P(J)?"warning":void 0,onClickRightSlot:()=>W(J),rightSlot:Se.faXmark,children:[J.clave," ",J.status]},J.id)})]}),R.length>0&&a.jsx(p.Popup,{absolute:!0,rightSlot:Se.faAngleDown,label:`${R.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:Se.faFilePen,items:R.map(J=>({id:J.id,label:J.clave})),className:"tm-p-8 tm-gap-4",onClick:async J=>{const se=await E(J.id);await H(se.id),await X(se),w("create-edit",se.id)}})})})]}),j===t?a.jsx("div",{className:"tm-flex tm-gap-4 tm-items-center tm-justify-end tm-flex-wrap",children:N.estatusFromStrapi!==Pe.PUBLISHED&&a.jsxs(a.Fragment,{children:[a.jsx(p.Button,{color:"secondary",size:"xs",leftSlot:Se.faArrowUp,disabled:Q(),onClick:_,children:"Publicar"}),k=="readonly"&&a.jsx(p.Button,{size:"xs",color:"primary",leftSlot:Se.faEdit,onClick:()=>(N==null?void 0:N.id)&&b(N.id,"edit"),children:"Editar"}),k==="edit"&&a.jsx(p.Button,{size:"xs",color:"primary",leftSlot:Se.faSave,onClick:q,disabled:te(),children:"Guardar"})]})}):a.jsx(p.Button,{disabled:S,tooltip:S?"Límite de 5 plantillas con cambios sin guardar. Guarda y cierra alguna para crear una nueva.":"",leftSlot:Se.faPlus,size:"xs",color:"primary",onClick:()=>{f(null),h(!1),g(!1),i(!0)},children:"Nuevo flujo"})]})},Ui=({isOpen:e,onClose:t,deleteTemplate:n})=>a.jsx(p.AlertDialog,{title:"Eliminar Borrador",iconContent:de.faBan,heading:"¿Estás seguro?",subheading:"Si eliminas este borrador, también se borrarán todas sus tareas y conexiones con otros borradores.",icon:de.faBan,label:"Escribe 'Eliminar' para continuar",confirmationText:"Eliminar",isOpen:e,onClose:t,onConfirm:n,placeholder:""}),Hi=()=>{const{viewMode:e,setRefetch:t,openModalPublishTemplate:n,setOpenModalPublishTemplate:o,currentTemplateId:s,setOpenModalDeleteTemplate:i,openModalDeleteTemplate:r}=Le(),{publishTemplate:l,deleteTemplate:d}=$e(),{debouncedSearch:c,filters:m}=ys("templates-container"),f=e==="list",[h,g]=u.useState(1),x=9,{data:j,isLoading:w,isFetching:b,refetch:y}=Ps({page:h,pageSize:x,search:c,filters:m});u.useEffect(()=>{t(y)},[]),u.useEffect(()=>{g(1)},[m,c]);const{users:v}=nt(),{getImageOBP:S}=fe(),O=N=>{if(!(N!=null&&N.email))return"";const X=v==null?void 0:v[N==null?void 0:N.email];return X!=null&&X.image?S(X==null?void 0:X.image):""},L=u.useMemo(()=>{try{return!j||!v?[]:j.data.map(N=>{const X=O((N==null?void 0:N.updated_by)||(N==null?void 0:N.created_by));return{...N,updated_by:{...N.updated_by,image:X}}})}catch(N){return console.error("Error al mapear las plantillas:",N),[]}},[j,v]),E=async()=>{await l(s),await y()},I=async()=>{await d(s),await y()};return w||b?a.jsx(dt,{isLoading:w||b}):a.jsxs("div",{className:"tm-flex tm-flex-col tm-justify-between tm-gap-y-4 tm-h-full",children:[a.jsx(Is,{isOpen:n,onClose:()=>o(!1),publishTemplate:E}),a.jsx(Ui,{isOpen:r,onClose:()=>i(!1),deleteTemplate:I}),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:L.map(N=>a.jsx(Ns,{fullWidth:f,template:N},N.id))}),a.jsx("div",{children:a.jsx(p.Pagination,{pageSize:x,pageCount:j==null?void 0:j.meta.pagination.pageCount,currentPage:h,onPageChange:N=>g(N)})})]})},Fs=()=>{var r,l,d,c;const e="grid",t="create-edit",{mode:n}=_e(),o=n===e,s=n===t,i=qe(m=>m.activeTemplate);return a.jsxs("div",{className:"tm-h-full tm-flex tm-flex-col tm-gap-y-6",children:[a.jsx($i,{}),o&&a.jsx(Hi,{}),s&&a.jsx(Ci,{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)||[]})]})},Ki=()=>({header:a.jsx(kr,{}),body:a.jsx(Fs,{})});function Vi(e){const{users:t}=Do(),{tasks_api:n,getImageOBP:o}=fe(),s=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,h)=>{const g={id:`group-${h+1}`,label:f.label,value:`group-${h+1}`,isGroupTitle:!0},x=f.params_plantillas.map(j=>({id:j.id,label:j.name,value:j.id,checked:!1,icon:"CheckCircleOutlined",iconColor:"blue"}));return[g,...x]})},r=le.useQuery({queryKey:["paramsPlantilla"],queryFn:()=>i(n),enabled:e==="templates-container",staleTime:1e3*60*30});return{userOptions:s,paramsPlantillasOptions:r.data||[]}}const Gi={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"}},Wi={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"}},Qi={"templates-container":Gi,"teams-container":Wi,"kanban-general":null,"lista-campanias":null,"kanban-campania":null},Xi=e=>({inputFilters:Qi[e]||null}),Yi=e=>{const{inputFilters:t}=Xi(e),{userOptions:n,paramsPlantillasOptions:o}=Vi(e);return{inputFilters:u.useMemo(()=>{if(t&&n.length>0&&o.length>0){const i=t;return[{...i.estatus},{...i.publication_date},{...i.propietario,options:n},{...i.created_by,options:n},{...i.updated_by,options:n},{...i.params_plantillas,options:o}]}return null},[e,t,n,o])}};function Ji(){const{setFilters:e}=xt(),{refetch:t}=Le();return{handleApplyFilters:o=>{let s={...o};s=Object.fromEntries(Object.entries(s).filter(([i,r])=>!(r===""||r===null||Array.isArray(r)&&r.length===0))),"publication_date"in s&&s.publication_date!==""&&(s={...s,publication_date:Pt(s.publication_date).format("YYYY-MM-DD")}),e(s,"templates-container"),t&&t()}}}const Ma="templates-container";function Zi(){const{mode:e}=_e(),{inputFilters:t}=Yi(Ma),{handleApplyFilters:n}=Ji(),{viewMode:o,setViewMode:s}=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(bs,{path:Ma}),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:n}),a.jsx(p.Button,{size:"xs",color:"secondary",icon:o==="list"?ne.faGrid2:ne.faList,className:"tm-min-w-fit",onClick:()=>s(o==="list"?"grid":"list")})]})]})}const Dt={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()},ta="Project Manager",Ms=({open:e,handleChange:t,children:n,title:o="¿Estás seguro?",onConfirm:s,contentLabel:i="",confirmLabel:r="Aceptar",cancelLabel:l="Regresar",isLoading:d=!1})=>a.jsx(p.Modal,{isOpen:e,onClose:()=>t(!1),onCancel:()=>t(!1),onSuccess:s,size:"xs",title:o,disableEscapeClose:!0,disableOutsideClick:!0,disableOutsideTab:!0,children:a.jsxs(p.Modal.Body,{children:[a.jsx(p.Text,{children:i}),n&&n]})}),el=({member:e,level:t,isUpdate:n=!1,addHandler:o,updateHandler:s,removeHandler:i,updateMemberHandler:r})=>{var z,F,G;const{users:l,isLoading:d}=bt(),{users:c,isLoading:m}=nt(),{getImageOBP:f}=fe(),[h,g]=u.useState(!1),[x,j]=u.useState(n?e:{...Dt,miembro_padre:t>1?e:null}),[w,b]=u.useState(null),[y,v]=u.useState({id:0,nombre:"",email:""}),[S,O]=u.useState(!1);u.useEffect(()=>{var D;b(c==null?void 0:c[(D=x==null?void 0:x.idUser)==null?void 0:D.email])},[x,c]),u.useEffect(()=>{e&&j({...e,miembro_padre:t>1?e.miembro_padre:null})},[e,t]);const L=u.useMemo(()=>(l||[]).map(D=>{var U,V;const $=c==null?void 0:c[D.email??""],B=$!=null&&$.image?f($.image):"";return{...D,label:D.name,value:D.id,subtitle:D.email??"",avatar:((V=(U=D.name)==null?void 0:U.slice(0,2))==null?void 0:V.toUpperCase())??"",avatarUrl:B}}),[l,c,f]),E=()=>{g(!1),v({id:0,nombre:"",email:""})},I=({id:D,name:$,email:B})=>{const U={...x,idUser:{...x.idUser,id:D,nombre:$,email:B}};j(U),s(U),v({id:D,nombre:$,email:B})},N=async()=>{if(!y.nombre&&!y.email){E();return}try{x.id&&r({user_id:y.id,miembro_id:e.id});const D={...x,idUser:{...x.idUser,id:y.id,nombre:y.nombre,email:y.email}};j(D),s(D),b(c==null?void 0:c[y.email]),E()}catch(D){p.toast.error(D instanceof Error?D.message:"Error al actualizar el colaborador")}},X=()=>{const D={...Dt,uid:new Date().getTime()+Math.floor(Math.random()*1e3),miembro_padre:e,miembros:[]};o(D)},H=()=>{i(e),O(!1)};return m||d?null:a.jsxs("div",{className:"tm-flex tm-items-baseline tm-justify-between",children:[S&&a.jsx(Ms,{open:S,handleChange:O,onConfirm:H,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&&!h?a.jsxs(a.Fragment,{children:[a.jsx(Fe,{size:"m",alt:((F=x==null?void 0:x.idUser)==null?void 0:F.nombre)??"Avatar",imageUrl:w!=null&&w.image?f(w.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:(G=x==null?void 0:x.idUser)==null?void 0:G.nombre})]}):a.jsx(p.Dropdown,{placeholder:"Seleccionar colaborador",options:L,valueName:"name",idName:"id",listVariant:"user",absolute:!0,closeOnClickOutside:!0,searchable:!0,searchPlaceholder:"Buscar colaborador...",onOptionSelect:D=>{I({id:D.id,name:D.name,email:D.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:E,icon:ne.faXmark,size:"xs",color:"secondary",tooltip:"Cancelar"}),a.jsx(p.Button,{onClick:N,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:()=>O(!0),icon:ne.faTrash,size:"xs",color:"destructive",tooltip:"Eliminar"})]})]})]})},ks=({members:e,level:t=1,isUpdate:n=!1,setData:o})=>{const s=()=>{o(i=>({...i,miembros:[...i.miembros,{...Dt,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:s,children:" Agregar miembro del equipo "})}),(e==null?void 0:e.length)>0&&(e==null?void 0:e.map(i=>a.jsx(tl,{isUpdate:n,member:i,level:t,setData:o},i.uid)))]})},tl=({member:e,level:t,isUpdate:n=!1,setData:o})=>{const s=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(x=>{x.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=x=>x.filter(j=>j.uid!==c.uid).map(j=>({...j,miembros:j.miembros?h(j.miembros):[]})),g=m.miembros_actualizar.filter(x=>!f.includes(x.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(el,{isUpdate:n,level:t,member:e,addHandler:s,updateHandler:i,removeHandler:l,updateMemberHandler:d}),Array.isArray(e.miembros)&&e.miembros.length>0&&a.jsx(ks,{isUpdate:n,members:e.miembros,level:t+1,setData:o})]},e.uid)};function ka(e){var l;const t=e.miembros;if(!(t!=null&&t.length))return e;const[n,...o]=t,s=n.miembros??[],i=new Set;for(const d of o){const c=(l=d.idUser)==null?void 0:l.id;typeof c=="number"&&c>0&&i.add(c)}const r=s.filter(d=>{var m;const c=(m=d.idUser)==null?void 0:m.id;return typeof c!="number"||c<=0?!0:!i.has(c)}).map(d=>({...d,esEncargado:!1,miembros:[],miembro_padre:null}));return{...e,miembros:[{...n},...r,...o]}}function Ls(e){const t=e??[],n=t.filter(o=>o.esEncargado);return n.length>0?n:t}const al=()=>"#"+Math.floor(Math.random()*16777215).toString(16),sl=({search:e,filters:t})=>{const n={};return e!=null&&e.trim()&&(n.nombre={$containsi:e.trim()}),t!=null&&t.createdAt&&(n.createdAt={$eq:t.createdAt}),n},nl=({items:e})=>{if(!e)return{members:[],allMembers:[]};const t={};for(const r of e)t[r.uid]=r;const n=[],o=new Set,s=r=>{const l={...r};if(l.id&&(l.uid=l.id),l.uid&&!o.has(l.uid)&&(n.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 s(f||m)}).filter(Boolean);return{...l,miembros:d}};return{members:e.filter(r=>r.miembro_padre===null).map(s),allMembers:n}},ol=({items:e})=>e?e.map(t=>{const n=nl({items:t.miembros});return{...t,integrantes:n.allMembers.length,miembros:n.members,miembros_planos:n.allMembers,miembros_eliminar:[],miembros_actualizar:[]}}):[],rl=async({tasks_api:e,page:t=1,pageSize:n=10,search:o="",filters:s={}})=>{const i=De.stringify({filters:sl({search:o,filters:s}),populate:Cs(),sort:["createdAt:asc"],pagination:{page:t,pageSize:n}},{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:n,pageCount:0,total:0}}}},il=({page:e=1,pageSize:t=10,search:n="",filters:o={}})=>{const{tasks_api:s}=fe();return le.useQuery({queryKey:["teams",e,t,n,o],queryFn:()=>rl({tasks_api:s,page:e,pageSize:t,search:n,filters:o}),staleTime:1e3*60*60*24,placeholderData:le.keepPreviousData,select:i=>({data:ol({items:(i==null?void 0:i.data)||[]}),meta:i==null?void 0:i.meta})})},It=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(It):[]}),Os=()=>{const{tasks_api:e}=fe(),t=le.useQueryClient(),n=async h=>{const g=ka(h),x={...g,id:void 0,miembros:g.miembros.map(It)};return(await e.post("/api/registrar-equipo-miembros",{data:x})).data},o=async h=>(await e.delete(`/api/equipos/${h}`)).data,s=async(h,g)=>{const x=ka(g),j={...x,id:void 0,miembros:x.miembros.map(It)};return(await e.patch(`/api/actualizar-equipo-miembros/${h}`,{data:j})).data},i=async(h,g,x)=>{const j=await e.put(`/api/miembros/${h}`,{data:{[g]:x}});if(!j.data)throw new Error("Error al actualizar el miembro");return j.data},{mutateAsync:r,isPending:l}=le.useMutation({mutationFn:o,onSuccess:()=>{t.invalidateQueries({queryKey:["teams"]})},onError:h=>{throw console.error("Failed to delete the team.",h),h}}),{mutateAsync:d}=le.useMutation({mutationFn:n,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}=le.useMutation({mutationFn:h=>s(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}=le.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}},ll=(e,t,n)=>{const o=u.useCallback(s=>{e.current&&!e.current.contains(s.target)&&t(!1)},[e,t]);u.useEffect(()=>(n&&document.addEventListener("mousedown",o),()=>{document.removeEventListener("mousedown",o)}),[o,n])},cl=({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
- `}),t.jsx("div",{className:"react-pick-color tm-overflow-hidden tm-rounded-lg tm-shadow-02",children:t.jsx(zs.ColorPicker,{color:e,theme:{inputBackground:"#FFF"},combinations:["monochromatic"],onChange:n=>a(n)})})]});function Ki({color:e,setColor:a,label:n="Elige el color",className:s=""}){const[o,i]=u.useState(!1),r=u.useRef(null);return Ui(r,i,o),t.jsxs("div",{className:"tm-relative tm-w-full",children:[t.jsx("button",{onClick:l=>{l.stopPropagation(),i(!o)},style:{backgroundColor:e},className:`tm-h-control-xs tm-w-full tm-rounded-control-sm tm-border-[1px] tm-border-default tm-px-8 tm-text-body-sm-bold tm-text-primary tm-text-left tm-text-white ${s}`,children:n}),o&&t.jsx("div",{ref:r,className:"tm-absolute tm-z-50 tm-mt-2",children:t.jsx(Hi,{color:e,onChange:l=>a(l.hex)})})]})}const St="Ha ocurrido un error inesperado. Por favor, intente nuevamente.",Vi={"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"},Es=()=>({handleApiError:a=>{var n,s,o,i,r;if(a instanceof tt.AxiosError&&((n=a.response)==null?void 0:n.status)===400){const l=a.response.data;if(((o=(s=l.details)==null?void 0:s.errors)==null?void 0:o.length)>0){const d=l.details.errors[0];let c=Vi[d.message]||St;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||St}return St}});function Ps({open:e,handleChange:a,team:n}){const{addTeamHandler:s,updateTeamHandler:o}=Ss(),{handleApiError:i}=Es(),[r,l]=u.useState(""),[d,c]=u.useState(n||{id:0,nombre:"",color:Li(),miembros:[],miembros_planos:[],integrantes:0,miembros_eliminar:[],miembros_actualizar:[]}),m=d.id>0,g=u.useMemo(()=>Cs(d.miembros),[d.miembros]),x=async()=>{if(d.nombre.length===0){l("El nombre del equipo es requerido");return}if(d.miembros.length===0){l("El equipo debe tener al menos un miembro");return}const p=async()=>m?await o({data:d,teamId:d.id}):await s(d);try{await p(),l(""),a(!1);const h=m?"Equipo actualizado correctamente":"Equipo creado correctamente";f.toast.success(h)}catch(h){l(i(h))}};return t.jsx(f.Modal,{onCancel:()=>a(!1),onSuccess:x,title:"Información del equipo",icon:Ve.faUser,showCloseButton:!0,showCancelButton:!0,showSuccessButton:!0,closeAtSuccess:!0,closeAtCancel:!0,isOpen:e,onClose:()=>a(!1),size:"lg",children:t.jsxs(f.Modal.Body,{children:[t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-8",children:[t.jsxs("div",{className:"tm-flex tm-w-full tm-items-center tm-gap-8 tm-flex-wrap",children:[t.jsx(ur,{value:d.nombre,onChange:p=>c({...d,nombre:p})}),t.jsxs("div",{className:"tm-flex tm-flex-1 tm-items-center tm-gap-x-8",children:[t.jsx("label",{className:"tm-text-body-sm-bold tm-text-primary tm-flex-1 tm-min-w-fit",children:"Color del equipo"}),t.jsx(Ki,{color:d.color,setColor:p=>c({...d,color:p})})]})]}),r&&t.jsx("p",{className:"tm-mt-4 tm-text-sm tm-text-danger-pastel",children:r})]}),t.jsxs("div",{className:"tm-mt-8",children:[t.jsx(mr,{title:"Miembros del equipo",icon:Ve.faUsers}),t.jsx(Ns,{members:g,setData:c,isUpdate:m})]})]})})}const Re=384,Gi=80,Wi=180,It=20,Qi=2,As=4,Dt=.8;function Xi({data:e}){const{getImageOBP:a}=pe();return t.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:[t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-4",children:[t.jsx("div",{className:"tm-flex tm-items-center tm-justify-center tm-rounded-full tm-bg-surface-default",children:t.jsx(De,{size:"xxl",alt:"@shadcn",imageUrl:e!=null&&e.image?a(e==null?void 0:e.image):void 0})}),t.jsxs("div",{className:"tm-flex tm-flex-col tm-gap-y-2",children:[t.jsx(f.Text,{size:"xs",weight:"bold",children:e.name}),t.jsx(f.Text,{children:e.job||"Puesto no asignado"})]})]}),t.jsx(oe.Handle,{type:"target",position:oe.Position.Top,className:"tm-bg-transparent",isConnectable:!1}),t.jsx(oe.Handle,{type:"source",position:oe.Position.Bottom,className:"tm-w-16 tm-border-none tm-bg-transparent",isConnectable:!1})]})}const Yi={custom:Xi},Ji={style:{stroke:"#6366f1",strokeWidth:2}},Is=(e,a=0)=>e?e.map(n=>{const s=n.miembros?Is(n.miembros,a+1):[];return{width:Re,height:Gi,children:s,x:0,y:a*Wi,totalWidth:0,depth:a}}):[],Ds=e=>{if(e.children.length===0)return e.totalWidth=Re,Re;const a=e.children.reduce((o,i)=>o+Ds(i),0),n=e.children.length>As?Dt:1,s=(e.children.length-1)*It*n;return e.totalWidth=Math.max(Re,a+s),e.totalWidth},Fs=(e,a=0)=>{let n=a;return e.forEach(s=>{s.totalWidth===0&&Ds(s);const o=s.children.length>Qi,i=s.children.length>As;if(s.children.length>0){if(Fs(s.children,n),i){const g=(s.totalWidth-Re)/(s.children.length-1)*Dt;s.children.forEach((x,p)=>{x.x=n+p*g})}else if(o){const g=(s.totalWidth-Re)/(s.children.length-1);s.children.forEach((x,p)=>{x.x=n+p*g})}const l=s.children[0].x,d=s.children[s.children.length-1].x+Re,c=i?Re*.1:0;s.x=(l+d-Re)/2+c}else s.x=n;const r=i?Dt:1;n=Math.max(n+Re+It*r,s.x+Re+It*r)}),n},Ms=(e,a,n,s)=>{const o=[],i=[];return e.forEach((r,l)=>{var m,g,x,p,h,y;const d=a[l],c=d.id.toString();if(o.push({id:c,type:"custom",data:{name:(m=d.idUser)==null?void 0:m.nombre,image:(x=n==null?void 0:n[(g=d.idUser)==null?void 0:g.email])==null?void 0:x.image,job:((y=(h=n==null?void 0:n[(p=d.idUser)==null?void 0:p.email])==null?void 0:h.role)==null?void 0:y.name)||""},position:{x:r.x,y:r.y}}),s&&i.push({id:`e-${s}-${c}`,source:s,target:c,style:{stroke:"#6366f1",strokeWidth:2}}),d.miembros&&d.miembros.length>0){const w=Ms(r.children,d.miembros,n,c);o.push(...w.nodes),i.push(...w.edges)}}),{nodes:o,edges:i}};function Zi({members:e}){const[a,n]=u.useState([]),[s,o]=u.useState([]),{users:i,isLoading:r}=st();return u.useEffect(()=>{if(e&&!r){const l=Is(e);Fs(l);const{nodes:d,edges:c}=Ms(l,e,i);n(d),o(c)}},[e,i,r]),r?null:t.jsx(oe.ReactFlow,{nodeTypes:Yi,nodes:a,edges:s,draggable:!1,fitView:!0,defaultViewport:{x:0,y:0,zoom:1},minZoom:.5,maxZoom:2,defaultEdgeOptions:Ji})}function el({open:e,handleChange:a,members:n}){const s=u.useMemo(()=>Cs(n??[]),[n]);return t.jsx(f.Modal,{showCancelButton:!1,showSuccessButton:!1,hideFooter:!0,isOpen:e,onClose:()=>a(!1),size:"xl",title:"Organigrama de equipo",children:t.jsx("div",{className:"tm-mx-auto tm-bg-surface-default",style:{width:"100%",height:"600px"},children:t.jsx(oe.ReactFlowProvider,{children:t.jsx(Zi,{members:s})})})})}const ks="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",tl="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 Ke({className:e="",rounded:a="md"}){const n=a==="full"?"tm-rounded-full":"tm-rounded-md";return t.jsx("span",{className:`${tl} ${n} ${e}`.trim(),"aria-hidden":!0})}function Os(){return t.jsx("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:Array.from({length:2},(e,a)=>t.jsx(Ke,{className:"tm-h-8 tm-w-8 tm-shrink-0",rounded:"full"},a))})}function al(){const{user:e}=je(),a=(e==null?void 0:e.role)===Yt;return t.jsxs(f.Card,{className:"tm-w-full",children:[t.jsxs(f.Card.Header,{className:"tm-flex tm-items-center justify-between",children:[t.jsx("div",{className:"tm-flex tm-flex-col tm-justify-start tm-items-start tm-gap-y-2",children:t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:[t.jsx(Ke,{className:"tm-h-2.5 tm-w-2.5 tm-shrink-0",rounded:"full"}),t.jsx(Ke,{className:"tm-h-8 tm-w-8 tm-shrink-0"}),t.jsx(Ke,{className:"tm-h-5 tm-min-h-[1.25rem] tm-w-40 tm-max-w-[min(100%,10rem)]"})]})}),t.jsx("div",{children:a?t.jsx(Ke,{className:"tm-h-8 tm-w-8 tm-shrink-0",rounded:"full"}):null})]}),t.jsx(f.Card.Separator,{}),t.jsxs(f.Card.Body,{scrollable:!1,children:[t.jsx(Os,{}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-4 tm-mt-2",children:[t.jsx(Ke,{className:"tm-h-4 tm-w-6"}),t.jsx(Ke,{className:"tm-h-4 tm-w-28"})]})]})]})}function sl({length:e}){const n=e??10;return t.jsx("div",{"aria-busy":"true","aria-live":"polite",className:ks,children:Array.from({length:n},(s,o)=>t.jsx(al,{},o))})}function nl({members:e}){const{getImageOBP:a}=pe(),{users:n,isLoading:s}=st();if(s)return t.jsx(Os,{});const o=e.filter(i=>{var r,l;return(l=n[(r=i.idUser)==null?void 0:r.email])==null?void 0:l.image}).slice(0,3);return t.jsx("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:t.jsx(f.Avatar,{maxVisible:2,stroke:!0,stack:o.map(i=>{var l;const r=n[(l=i.idUser)==null?void 0:l.email];return{src:a(r.image),name:r.name}}),size:"sm"})})}function ol({team:e}){const[a,n]=u.useState(!1),[s,o]=u.useState(!1),{user:i}=je(),[r,l]=u.useState(!1),{handleApiError:d}=Es(),{deleteTeamHandler:c,isLoadingDeleteTeam:m}=Ss(),g=async()=>{try{await c(e.id),f.toast.success("Equipo eliminado correctamente")}catch(x){f.toast.error(d(x))}};return t.jsxs(f.Card,{children:[a&&t.jsx(Ps,{handleChange:n,open:a,team:e}),r&&t.jsx(Ts,{isLoading:m,open:r,handleChange:l,onConfirm:g,contentLabel:"Estás eliminando el equipo seleccionado"}),s&&t.jsx(el,{handleChange:o,open:s,members:e.miembros}),t.jsxs(f.Card.Header,{className:"tm-flex tm-items-center tm-justify-between tm-w-full",children:[t.jsx("div",{className:"tm-flex tm-flex-col tm-justify-start tm-items-start tm-gap-y-2",children:t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-x-8 tm-justify-between tm-w-full",children:[t.jsx(f.Badge,{size:"dot",customColor:e.color,theme:"solid"}),t.jsx(f.Icon,{name:Ve.faPeopleGroup,colorDuotonePrimary:"blue",colorDuotoneSecondary:"blue",opacityDuotonePrimary:.5,size:"md"}),t.jsx("h1",{className:"tm-py-0.5 tm-font-body-sm-bold tm-text-body-sm-bold tm-leading-none tm-text-primary",children:e.nombre})]})}),t.jsx("div",{children:(i==null?void 0:i.role)==Yt&&t.jsx(f.Popup,{size:"xs",color:"secondary",pill:"pill",icon:ne.faEllipsis,stopPropagationList:!0,children:t.jsxs(f.List,{className:"tm-gap-4",padding:"sm",children:[t.jsx(f.ListItem,{icon:ne.faPencil,onClick:()=>n(!0),children:"Editar"}),t.jsx(f.ListItem,{icon:ne.faEye,onClick:()=>o(!0),children:"Ver organigrama"}),t.jsx(f.ListItem,{color:"red",icon:ne.faTrash,onClick:()=>l(!0),children:"Eliminar"})]})})})]}),t.jsx(f.Card.Separator,{}),t.jsxs(f.Card.Body,{children:[t.jsx(nl,{members:e.miembros_planos}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-4 tm-mt-2",children:[t.jsx("p",{className:"tm-text-icon-all-colors-blue tm-text-xs tm-text-center tm-leading-none tm-font-semibold",children:e.integrantes||0}),t.jsxs("p",{className:"tm-text-body-xs-regular tm-text-tertiary tm-font-body-xs-normal",children:["Integrante",e.integrantes>1?"s":""]})]})]})]})}function rl({teams:e}){return t.jsx("div",{className:ks,children:e==null?void 0:e.map(a=>t.jsx(ol,{team:a},a.id))})}const il="teams-container";function ll(){return t.jsx("div",{className:"tm-flex tm-flex-wrap tm-items-center tm-justify-between tm-gap-2.5 md:tm-flex-nowrap",children:t.jsx(ls,{path:il})})}function Ls(){var b,v,O,H,M;const[e,a]=u.useState(!1),[n,s]=u.useState(1),[o,i]=u.useState(10),{user:r}=je(),{debouncedSearch:l,filters:d}=cs("teams-container"),c=Array.isArray(d)?d:[];u.useEffect(()=>{s(1)},[l,d]);const{data:m,isLoading:g}=$i({page:n,pageSize:o,search:l,filters:{nombre:"",createdAt:(b=c.find(N=>N.keyName==="createdAt"))==null?void 0:b.value,integrantes_min:(v=c.find(N=>N.keyName==="integrantes_min"))==null?void 0:v.value,integrantes_max:(O=c.find(N=>N.keyName==="integrantes_max"))==null?void 0:O.value}}),x=(m==null?void 0:m.data)||[],p=m==null?void 0:m.meta,h=((H=p==null?void 0:p.pagination)==null?void 0:H.pageCount)||0,y=((M=p==null?void 0:p.pagination)==null?void 0:M.total)||0,w=N=>{s(N)},j=N=>{i(N),s(1)};return t.jsxs("div",{className:"tm-grid tm-h-full tm-grid-rows-[auto,1fr] tm-gap-y-8",children:[e&&t.jsx(Ps,{handleChange:a,open:e}),(r==null?void 0:r.role)===Yt&&t.jsx("div",{className:"tm-flex tm-items-center tm-justify-end",children:t.jsx(f.Button,{size:"xs",color:"primary",leftSlot:ne.faPlus,onClick:()=>a(!0),children:" Nuevo equipo "})}),t.jsx("div",{className:"custom-scrollbar",style:{scrollbarGutter:"stable",paddingRight:"4px"},children:x.length===0&&!g?t.jsx("div",{className:"flex tm-h-full tm-items-center tm-justify-center",children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-justify-center tm-gap-y-6",children:[t.jsx("p",{className:"tm-text-3xl tm-font-bold",children:l?"No se encontraron equipos con ese nombre":"¡Parece que aún no has creado un equipo!"}),!l&&t.jsx(f.Button,{color:"primary",onClick:()=>a(!0),children:"¡Empieza ahora!"})]})}):g?t.jsx("div",{className:"tm-pb-16 tm-opacity-100 tm-transition tm-duration-300",children:t.jsx(sl,{length:o})}):t.jsx("div",{className:`tm-pb-16 ${g?"tm-opacity-0 tm-transition tm-duration-300":"tm-opacity-100 tm-transition tm-duration-300"}`,children:t.jsx(rl,{teams:x})})}),h>0&&t.jsx(f.Pagination,{currentPage:n,pageCount:h,pageSize:o,total:y,onPageChange:w,handlePageSize:j,showVisiblePages:!0,showPagesSelector:!0})]})}const cl=()=>({header:t.jsx(fl,{}),body:t.jsx(Ls,{})}),dl={"templates-container":Mi,"teams-container":ll};function ml({path:e}){const a=e?dl[e]:null;return a?t.jsx(a,{}):null}function ul({path:e}){return e==="templates-container"?Ci():e==="teams-container"?cl():{header:null,body:null}}const pl=({startPath:e})=>{const{path:a,setPath:n}=ke(),{setCurrentPath:s}=gt();u.useEffect(()=>{n(e),s(e)},[e,n,s]);const{header:o,body:i}=ul({path:a});return t.jsxs(f.Card,{fullWidth:!0,className:"tm-h-full",children:[t.jsxs(f.Card.Header,{className:"tm-flex tm-flex-wrap tm-items-center tm-gap-16 tm-justify-between",children:[o,t.jsx(ml,{path:a})]}),t.jsx(f.Card.Separator,{}),t.jsx(f.Card.Body,{fullHeight:!0,className:"tm-flex tm-flex-1 tm-flex-col tm-gap-y-4",children:i})]})},fl=()=>t.jsx(is,{title:"Equipos"}),gl=({path:e,tab:a,setPath:n,project:s,setProject:o})=>{const i={"kanban-general":{kanban:t.jsx(nr,{})},"teams-container":{teams:t.jsx(Ls,{})},"lista-campanias":{lista:t.jsx(Kn,{setPath:n,setProject:o}),gantt:t.jsx("div",{children:"gantt-campanias"})},"kanban-campania":{kanban:t.jsx(Xo,{}),lista:t.jsx(dr,{}),gantt:t.jsx("div",{children:"kanban-campania-gantt"})},"templates-container":{templates:t.jsx(_s,{})}};return e==="kanban-campania"?t.jsx(to,{project:s==null?void 0:s.id,children:i[e][a]}):i[e][a]},hl=({label:e,active:a,onClick:n,disabled:s})=>s?t.jsx(Fe,{position:"bottom",trigger:t.jsx("button",{type:"button",className:"tm-cursor-help tm-text-xs tm-font-semibold tm-text-texts-placeholder",children:e}),children:t.jsx("div",{className:"tm-px-4 tm-py-2",children:t.jsx(f.Text,{children:"Espéralo muy pronto..."})})}):t.jsx("button",{type:"button",disabled:s,onClick:n,className:`${a?" tm-text-black-regular":""} tm-text-xs ${s?"tm-cursor-not-allowed tm-text-lg tm-text-black-regular":"tm-text-black-regular"}`,children:e}),xl=({tabs:e,renderItem:a,initialTab:n})=>{const[s,o]=u.useState(n??e[0].toLowerCase());u.useEffect(()=>{n&&o(n)},[n]);const i=r=>{o(r),a(r)};return t.jsx("div",{className:"tm-flex",children:e.map((r,l)=>t.jsx("div",{className:`${l===0?"tm-border-l-2":""} tm-border-r-2 tm-border-default tm-px-m`,children:t.jsx(hl,{onClick:()=>i(r.toLowerCase()),label:r,active:r.toLowerCase()===s,disabled:["gantt"].includes(r.toLowerCase())},l)}))})},Aa="tasksProject",bl=({path:e})=>{const a=()=>{const n=le.useQueryClient(),{selectPath:s,updateFilters:o,applyFilters:i,filters:r,fields:l}=Me(),[d,c]=u.useState("kanban"),[m,g]=u.useState(e),[x,p]=u.useState({id:1704,project:"Kanban de Campania"}),[h,y]=u.useState([{path:"lista-campanias",search:(r==null?void 0:r.search)??""},{path:"kanban-campania",search:(r==null?void 0:r.taskName)??""},{path:"kanban-general",search:(r==null?void 0:r.taskName)??""},{path:"teams-container",search:(r==null?void 0:r.taskName)??""},{path:"templates-container",search:(r==null?void 0:r.taskName)??""}]),[w,j]=u.useState();u.useEffect(()=>{var T;c(m==="lista-campanias"?"lista":m==="kanban-campania"?"kanban":m==="teams-container"?"teams":m==="templates-container"?"templates":"kanban"),s(m),j(((T=h.find(X=>X.path===m))==null?void 0:T.search)??"")},[e,m]),u.useEffect(()=>{var T;((T=M())==null?void 0:T.trim())===""&&o({name:m==="lista-campanias"||m==="teams-container"||m==="templates-container"?"search":"taskName",value:null}),i()},[h]);const b=T=>({"kanban-general":"Kanban General","lista-campanias":"Campanias","teams-container":"Equipos","kanban-campania":`Kanban de ${x.project}`,"templates-container":"Flujos de trabajo"})[T],v=T=>{g(T)},O=["lista-campanias","kanban-campania"],H={"lista-campanias":["lista","gantt"],"kanban-campania":["kanban","lista","gantt"],"teams-container":["teams"],"templates-container":["templates"]},M=()=>{var T;return((T=h.find(X=>X.path===m))==null?void 0:T.search)??""},N=()=>{m==="kanban-general"?Ko(n):m==="kanban-campania"&&(n.invalidateQueries({queryKey:[Aa]}),n.refetchQueries({queryKey:[Aa]}))},A=T=>{y(X=>X.map(U=>U.path===m?{...U,search:T}:U))};return u.useEffect(()=>{const T=setTimeout(()=>{o({name:m==="lista-campanias"||m==="teams-container"||m==="templates-container"?"search":"taskName",value:w==null?void 0:w.trim()}),A(w)},500);return()=>{clearTimeout(T)}},[w]),t.jsxs("div",{className:"tm-relative tm-flex tm-h-full tm-min-h-[100%] tm-w-full tm-flex-col tm-gap-m tm-overflow-hidden tm-rounded-lg tm-border tm-border-default tm-bg-surface-default tm-p-m",children:[t.jsxs("div",{className:"tm-flex tm-w-full tm-flex-wrap tm-items-end tm-justify-between tm-gap-l tm-border-b tm-border-default tm-pb-m",children:[t.jsxs("div",{className:"tm-flex tm-gap-xl tm-items-center",children:[m==="kanban-campania"&&t.jsx(f.Button,{icon:ne.faArrowLeft,onClick:()=>v("lista-campanias"),color:"secondary",pill:"pill",size:"xxs"}),t.jsx(f.Text,{size:"lg",weight:"medium",color:"primary",children:b(m)}),O.includes(m)&&t.jsx(xl,{tabs:H[m],renderItem:T=>{c(T)},initialTab:d})]}),t.jsxs("div",{className:"tm-flex tm-items-center tm-gap-s !tm-text-[16px]",children:[t.jsx(f.Input,{leftSlot:de.faSearch,onChange:T=>{j(T.target.value)},placeholder:`Buscar por ${m==="lista-campanias"?"campaña":"campaña / tarea"}`,value:w,fullWidth:!0,className:"tm-min-w-[280px]"}),l.length>0&&t.jsx(Gn,{children:t.jsx(Yn,{})}),(m==="kanban-general"||m==="kanban-campania")&&t.jsx(f.Button,{icon:ne.faRotate,onClick:N,color:"secondary",pill:"pill",size:"xs"})]})]}),t.jsx("div",{className:"tm-h-full tm-max-h-[100%] tm-overflow-y-auto tm-scrollbar-none",children:t.jsx(gl,{path:m,tab:d,setPath:v,project:x,setProject:p})})]})};return t.jsx($s,{children:t.jsx(a,{})})},yl=({path:e})=>["templates-container","teams-container"].includes(e)?t.jsx(pl,{startPath:e}):t.jsx(bl,{path:e}),jl=()=>t.jsx("div",{className:"tm-relative tm-h-full tm-min-h-[100%] tm-w-full",children:t.jsx("div",{className:"tm-flex tm-h-full tm-items-center tm-justify-center",children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-text-2xl tm-font-bold",children:[t.jsx("div",{className:"tm-h-10 tm-w-10 tm-animate-pulse tm-rounded-full tm-bg-primary-regular"}),t.jsx("p",{className:"tm-text-l tm-text-texts-enfasis",children:"No encontramos tu acceso"}),t.jsx("p",{className:"tm-text-sm tm-text-texts-placeholder",children:"por favor, contacta al administrador"})]})})}),wl=()=>t.jsx("div",{className:"tm-relative tm-h-full tm-min-h-[100%] tm-w-full",children:t.jsx("div",{className:"tm-flex tm-h-full tm-items-center tm-justify-center",children:t.jsxs("div",{className:"tm-flex tm-flex-col tm-items-center tm-text-2xl tm-font-bold",children:[t.jsx("div",{className:"tm-h-10 tm-w-10 tm-animate-pulse tm-rounded-full tm-bg-primary-regular"}),t.jsx("p",{className:"tm-text-l tm-text-texts-enfasis",children:"un momento..."}),t.jsx("p",{className:"tm-text-sm tm-text-texts-placeholder",children:"estamos buscando tu usuario"})]})})}),vl=({path:e,user:a,url:n,mode:s})=>{const o=new le.QueryClient;if(!a)return t.jsx(wl,{});if(!a.accessToken)return t.jsx(jl,{});let i={user:a,url:n,mode:s};return t.jsxs(br,{children:[t.jsx(f.Messaging,{}),t.jsx(Hs,{...i,children:t.jsx(Us,{...i,children:t.jsx("div",{className:"tm-relative tm-h-full tm-min-h-[100%] tm-w-full",children:t.jsxs(le.QueryClientProvider,{client:o,children:[t.jsx(yl,{path:e})," "]})})})})]})};exports.AppTasks=vl;
27
+ `}),a.jsx("div",{className:"react-pick-color tm-overflow-hidden tm-rounded-lg tm-shadow-02",children:a.jsx(Ys.ColorPicker,{color:e,theme:{inputBackground:"#FFF"},combinations:["monochromatic"],onChange:n=>t(n)})})]});function dl({color:e,setColor:t,label:n="Elige el color",className:o=""}){const[s,i]=u.useState(!1),r=u.useRef(null);return ll(r,i,s),a.jsxs("div",{className:"tm-relative tm-w-full",children:[a.jsx("button",{onClick:l=>{l.stopPropagation(),i(!s)},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:n}),s&&a.jsx("div",{ref:r,className:"tm-absolute tm-z-50 tm-mt-2",children:a.jsx(cl,{color:e,onChange:l=>t(l.hex)})})]})}const At="Ha ocurrido un error inesperado. Por favor, intente nuevamente.",ml={"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"},Bs=()=>({handleApiError:t=>{var n,o,s,i,r;if(t instanceof at.AxiosError&&((n=t.response)==null?void 0:n.status)===400){const l=t.response.data;if(((s=(o=l.details)==null?void 0:o.errors)==null?void 0:s.length)>0){const d=l.details.errors[0];let c=ml[d.message]||At;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||At}return At}});function Rs({open:e,handleChange:t,team:n}){const{addTeamHandler:o,updateTeamHandler:s}=Os(),{handleApiError:i}=Bs(),[r,l]=u.useState(""),[d,c]=u.useState(n||{id:0,nombre:"",color:al(),miembros:[],miembros_planos:[],integrantes:0,miembros_eliminar:[],miembros_actualizar:[]}),m=d.id>0,f=u.useMemo(()=>Ls(d.miembros),[d.miembros]),h=async()=>{if(d.nombre.length===0){l("El nombre del equipo es requerido");return}if(d.miembros.length===0){l("El equipo debe tener al menos un miembro");return}const g=async()=>m?await s({data:d,teamId:d.id}):await o(d);try{await g(),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: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(Dr,{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(dl,{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(Pr,{title:"Miembros del equipo",icon:We.faUsers}),a.jsx(ks,{members:f,setData:c,isUpdate:m})]})]})})}const Re=384,ul=80,pl=180,Ft=20,fl=2,zs=4,Mt=.8;function gl({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 hl={custom:gl},xl={style:{stroke:"#6366f1",strokeWidth:2}},qs=(e,t=0)=>e?e.map(n=>{const o=n.miembros?qs(n.miembros,t+1):[];return{width:Re,height:ul,children:o,x:0,y:t*pl,totalWidth:0,depth:t}}):[],$s=e=>{if(e.children.length===0)return e.totalWidth=Re,Re;const t=e.children.reduce((s,i)=>s+$s(i),0),n=e.children.length>zs?Mt:1,o=(e.children.length-1)*Ft*n;return e.totalWidth=Math.max(Re,t+o),e.totalWidth},Us=(e,t=0)=>{let n=t;return e.forEach(o=>{o.totalWidth===0&&$s(o);const s=o.children.length>fl,i=o.children.length>zs;if(o.children.length>0){if(Us(o.children,n),i){const f=(o.totalWidth-Re)/(o.children.length-1)*Mt;o.children.forEach((h,g)=>{h.x=n+g*f})}else if(s){const f=(o.totalWidth-Re)/(o.children.length-1);o.children.forEach((h,g)=>{h.x=n+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=n;const r=i?Mt:1;n=Math.max(n+Re+Ft*r,o.x+Re+Ft*r)}),n},Hs=(e,t,n,o)=>{const s=[],i=[];return e.forEach((r,l)=>{var m,f,h,g,x,j;const d=t[l],c=d.id.toString();if(s.push({id:c,type:"custom",data:{name:(m=d.idUser)==null?void 0:m.nombre,image:(h=n==null?void 0:n[(f=d.idUser)==null?void 0:f.email])==null?void 0:h.image,job:((j=(x=n==null?void 0:n[(g=d.idUser)==null?void 0:g.email])==null?void 0:x.role)==null?void 0:j.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 w=Hs(r.children,d.miembros,n,c);s.push(...w.nodes),i.push(...w.edges)}}),{nodes:s,edges:i}};function bl({members:e}){const[t,n]=u.useState([]),[o,s]=u.useState([]),{users:i,isLoading:r}=nt();return u.useEffect(()=>{if(e&&!r){const l=qs(e);Us(l);const{nodes:d,edges:c}=Hs(l,e,i);n(d),s(c)}},[e,i,r]),r?null:a.jsx(oe.ReactFlow,{nodeTypes:hl,nodes:t,edges:o,draggable:!1,fitView:!0,defaultViewport:{x:0,y:0,zoom:1},minZoom:.5,maxZoom:2,defaultEdgeOptions:xl})}function yl({open:e,handleChange:t,members:n}){const o=u.useMemo(()=>Ls(n??[]),[n]);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(bl,{members:o})})})})}const Ks="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",jl="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 Ge({className:e="",rounded:t="md"}){const n=t==="full"?"tm-rounded-full":"tm-rounded-md";return a.jsx("span",{className:`${jl} ${n} ${e}`.trim(),"aria-hidden":!0})}function Vs(){return a.jsx("div",{className:"tm-flex tm-items-center tm-gap-x-8",children:Array.from({length:2},(e,t)=>a.jsx(Ge,{className:"tm-h-8 tm-w-8 tm-shrink-0",rounded:"full"},t))})}function wl(){const{user:e}=ve(),t=(e==null?void 0:e.role)===ta;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(Ge,{className:"tm-h-2.5 tm-w-2.5 tm-shrink-0",rounded:"full"}),a.jsx(Ge,{className:"tm-h-8 tm-w-8 tm-shrink-0"}),a.jsx(Ge,{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(Ge,{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(Vs,{}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-4 tm-mt-2",children:[a.jsx(Ge,{className:"tm-h-4 tm-w-6"}),a.jsx(Ge,{className:"tm-h-4 tm-w-28"})]})]})]})}function vl({length:e}){const n=e??10;return a.jsx("div",{"aria-busy":"true","aria-live":"polite",className:Ks,children:Array.from({length:n},(o,s)=>a.jsx(wl,{},s))})}function _l({members:e}){const{getImageOBP:t}=fe(),{users:n,isLoading:o}=nt();if(o)return a.jsx(Vs,{});const s=e.filter(i=>{var r,l;return(l=n[(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:s.map(i=>{var l;const r=n[(l=i.idUser)==null?void 0:l.email];return{src:t(r.image),name:r.name}}),size:"sm"})})}function Tl({team:e}){const[t,n]=u.useState(!1),[o,s]=u.useState(!1),{user:i}=ve(),[r,l]=u.useState(!1),{handleApiError:d}=Bs(),{deleteTeamHandler:c,isLoadingDeleteTeam:m}=Os(),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(Rs,{handleChange:n,open:t,team:e}),r&&a.jsx(Ms,{isLoading:m,open:r,handleChange:l,onConfirm:f,contentLabel:"Estás eliminando el equipo seleccionado"}),o&&a.jsx(yl,{handleChange:s,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)==ta&&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:()=>n(!0),children:"Editar"}),a.jsx(p.ListItem,{icon:ne.faEye,onClick:()=>s(!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(_l,{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 Nl({teams:e}){return a.jsx("div",{className:Ks,children:e==null?void 0:e.map(t=>a.jsx(Tl,{team:t},t.id))})}const Cl="teams-container";function Sl(){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(bs,{path:Cl})})}function Gs(){var y,v,S,O,L;const[e,t]=u.useState(!1),[n,o]=u.useState(1),[s,i]=u.useState(10),{user:r}=ve(),{debouncedSearch:l,filters:d}=ys("teams-container"),c=Array.isArray(d)?d:[];u.useEffect(()=>{o(1)},[l,d]);const{data:m,isLoading:f}=il({page:n,pageSize:s,search:l,filters:{nombre:"",createdAt:(y=c.find(E=>E.keyName==="createdAt"))==null?void 0:y.value,integrantes_min:(v=c.find(E=>E.keyName==="integrantes_min"))==null?void 0:v.value,integrantes_max:(S=c.find(E=>E.keyName==="integrantes_max"))==null?void 0:S.value}}),h=(m==null?void 0:m.data)||[],g=m==null?void 0:m.meta,x=((O=g==null?void 0:g.pagination)==null?void 0:O.pageCount)||0,j=((L=g==null?void 0:g.pagination)==null?void 0:L.total)||0,w=E=>{o(E)},b=E=>{i(E),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(Rs,{handleChange:t,open:e}),(r==null?void 0:r.role)===ta&&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(vl,{length:s})}):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(Nl,{teams:h})})}),x>0&&a.jsx(p.Pagination,{currentPage:n,pageCount:x,pageSize:s,total:j,onPageChange:w,handlePageSize:b,showVisiblePages:!0,showPagesSelector:!0})]})}const El=()=>({header:a.jsx(Fl,{}),body:a.jsx(Gs,{})}),Al={"templates-container":Zi,"teams-container":Sl};function Pl({path:e}){const t=e?Al[e]:null;return t?a.jsx(t,{}):null}function Dl({path:e}){return e==="templates-container"?Ki():e==="teams-container"?El():{header:null,body:null}}const Il=({startPath:e})=>{const{path:t,setPath:n}=Le(),{setCurrentPath:o}=xt();u.useEffect(()=>{n(e),o(e)},[e,n,o]);const{header:s,body:i}=Dl({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:[s,a.jsx(Pl,{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})]})},Fl=()=>a.jsx(xs,{title:"Equipos"}),Ml=({path:e,tab:t,setPath:n,project:o,setProject:s})=>{const i={"kanban-general":{kanban:a.jsx(_r,{})},"teams-container":{teams:a.jsx(Gs,{})},"lista-campanias":{lista:a.jsx(to,{setPath:n,setProject:s}),gantt:a.jsx("div",{children:"gantt-campanias"})},"kanban-campania":{kanban:a.jsx(gr,{}),lista:a.jsx(Ar,{}),gantt:a.jsx("div",{children:"kanban-campania-gantt"})},"templates-container":{templates:a.jsx(Fs,{})}};return e==="kanban-campania"?a.jsx(jo,{project:o==null?void 0:o.id,children:i[e][t]}):i[e][t]},kl=({label:e,active:t,onClick:n,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:n,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}),Ll=({tabs:e,renderItem:t,initialTab:n})=>{const[o,s]=u.useState(n??e[0].toLowerCase());u.useEffect(()=>{n&&s(n)},[n]);const i=r=>{s(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(kl,{onClick:()=>i(r.toLowerCase()),label:r,active:r.toLowerCase()===o,disabled:["gantt"].includes(r.toLowerCase())},l)}))})},La="tasksProject",Ol=({path:e})=>{const t=()=>{const n=le.useQueryClient(),{selectPath:o,updateFilters:s,applyFilters:i,filters:r,fields:l}=ke(),[d,c]=u.useState("kanban"),[m,f]=u.useState(e),[h,g]=u.useState({id:1704,project:"Kanban de Campania"}),[x,j]=u.useState([{path:"lista-campanias",search:(r==null?void 0:r.search)??""},{path:"kanban-campania",search:(r==null?void 0:r.taskName)??""},{path:"kanban-general",search:(r==null?void 0:r.taskName)??""},{path:"teams-container",search:(r==null?void 0:r.taskName)??""},{path:"templates-container",search:(r==null?void 0:r.taskName)??""}]),[w,b]=u.useState();u.useEffect(()=>{var N;c(m==="lista-campanias"?"lista":m==="kanban-campania"?"kanban":m==="teams-container"?"teams":m==="templates-container"?"templates":"kanban"),o(m),b(((N=x.find(X=>X.path===m))==null?void 0:N.search)??"")},[e,m]),u.useEffect(()=>{var N;((N=L())==null?void 0:N.trim())===""&&s({name:m==="lista-campanias"||m==="teams-container"||m==="templates-container"?"search":"taskName",value:null}),i()},[x]);const y=N=>({"kanban-general":"Kanban General","lista-campanias":"Campanias","teams-container":"Equipos","kanban-campania":`Kanban de ${h.project}`,"templates-container":"Flujos de trabajo"})[N],v=N=>{f(N)},S=["lista-campanias","kanban-campania"],O={"lista-campanias":["lista","gantt"],"kanban-campania":["kanban","lista","gantt"],"teams-container":["teams"],"templates-container":["templates"]},L=()=>{var N;return((N=x.find(X=>X.path===m))==null?void 0:N.search)??""},E=()=>{m==="kanban-general"?dr(n):m==="kanban-campania"&&(n.invalidateQueries({queryKey:[La]}),n.refetchQueries({queryKey:[La]}))},I=N=>{j(X=>X.map(H=>H.path===m?{...H,search:N}:H))};return u.useEffect(()=>{const N=setTimeout(()=>{s({name:m==="lista-campanias"||m==="teams-container"||m==="templates-container"?"search":"taskName",value:w==null?void 0:w.trim()}),I(w)},500);return()=>{clearTimeout(N)}},[w]),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)}),S.includes(m)&&a.jsx(Ll,{tabs:O[m],renderItem:N=>{c(N)},initialTab:d})]}),a.jsxs("div",{className:"tm-flex tm-items-center tm-gap-s !tm-text-[16px]",children:[a.jsx(p.Input,{leftSlot:de.faSearch,onChange:N=>{b(N.target.value)},placeholder:`Buscar por ${m==="lista-campanias"?"campaña":"campaña / tarea"}`,value:w,fullWidth:!0,className:"tm-min-w-[280px]"}),l.length>0&&a.jsx(so,{children:a.jsx(io,{})}),(m==="kanban-general"||m==="kanban-campania")&&a.jsx(p.Button,{icon:ne.faRotate,onClick:E,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(Ml,{path:m,tab:d,setPath:v,project:h,setProject:g})})]})};return a.jsx(Js,{children:a.jsx(t,{})})},Bl=({path:e})=>["templates-container","teams-container"].includes(e)?a.jsx(Il,{startPath:e}):a.jsx(Ol,{path:e}),Rl=()=>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"})]})})}),zl=()=>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"})]})})}),ql=({path:e,user:t,url:n,mode:o})=>{const s=new le.QueryClient;if(!t)return a.jsx(zl,{});if(!t.accessToken)return a.jsx(Rl,{});const i={user:t,url:n,mode:o};return a.jsxs(Or,{children:[a.jsx(p.Messaging,{}),a.jsx(en,{...i,children:a.jsx(Zs,{...i,children:a.jsx("div",{className:"tm-relative tm-h-full tm-min-h-[100%] tm-w-full",children:a.jsxs(le.QueryClientProvider,{client:s,children:[a.jsx(Bl,{path:e})," "]})})})})]})};exports.AppTasks=ql;