@imj_media/tareas 1.4.0 → 1.4.2

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.
@@ -1,5 +1,10 @@
1
1
  import { AxiosInstance } from 'axios';
2
2
  import { IUsers } from '../../infraestructure/interfaces/users';
3
+ /**
4
+ * Obtiene los usuarios que son miembros de un equipo
5
+ * @param tasks_api - AxiosInstance
6
+ * @returns Promise<IUsers[]>
7
+ */
3
8
  export declare const getAllUSersResponse: ({ tasks_api, }: {
4
9
  tasks_api: AxiosInstance;
5
10
  }) => Promise<IUsers[]>;
@@ -0,0 +1,4 @@
1
+ declare const useAllUsers: () => {
2
+ users: import('@tanstack/react-query').UseQueryResult<any, Error>;
3
+ };
4
+ export default useAllUsers;
package/dist/tareas.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime");require("@imj_media/imj-ui/styles.css");const I=require("@tanstack/react-query"),w=require("react"),_=require("@imj_media/tasks-modules"),et=require("react-dom"),Ct=require("axios"),Tt=require("qs"),lt=require("date-fns"),wt=require("date-fns/locale"),K=require("@imj_media/imj-ui"),ct=require("react-hook-form"),Jt=require("primereact/paginator"),g={bg:{content:"#FAFAFA"},texts:{DEFAULT:"#252525",subtext:"#4f4f4f",placeholder:"#929292"},primary:{regular:"#425CAC"},success:{dark:"#368156",regular:"#43B071"},danger:{dark:"#8C352C",regular:"#C34335"},warning:{dark:"#B4782F",regular:"#D38A31"},silver:{silver_light:" #F5F5F5",silver_dark:" #E9E9E9"},progressbar:{orange_regular:"#DC8921",blue_regular:"#3658C1",green_regular:"#039B59"},gray:{gray_regular:"#D1D1D1",gray_dark:"#C4C4C4"},black:{black_light:"#929292",black_medium:"#4F4F4F",black_dark:"#131313"}},dt=()=>{const[s,e]=w.useState(null);return{position:s,setElementPosition:o=>{var x;let i=(x=o.current)==null?void 0:x.getBoundingClientRect(),c=(i==null?void 0:i.x)+((i==null?void 0:i.width)??0),l=(i==null?void 0:i.y)+(i==null?void 0:i.height);e(s?null:{x:c??0,y:l??0})},getChildrenSize:o=>{var i;return(i=o.current)==null?void 0:i.getBoundingClientRect()},clearPosition:()=>{e(null)}}},Xt=({children:s,filterChildren:e})=>{const{position:n,setElementPosition:a}=dt(),r=w.useRef(null),o=({children:i})=>{const[c,l]=w.useState();return w.useEffect(()=>{var x,d;e.current&&l(((n==null?void 0:n.x)??0)-(((d=(x=e.current)==null?void 0:x.getBoundingClientRect())==null?void 0:d.width)??0))},[e==null?void 0:e.current,n==null?void 0:n.x]),n&&et.createPortal(t.jsx("div",{className:`tw-absolute tw-w-fit tw-h-fit ${c?"tw-block":"tw-hidden"}`,style:{top:`${n==null?void 0:n.y}px`,left:`${c}px`,zIndex:1},"data-portal-host":!0,children:i}),document.body)};return t.jsxs(t.Fragment,{children:[t.jsxs("label",{ref:r,htmlFor:"filter-button",className:"tw-flex tw-cursor-pointer tw-text-xl tw-items-center tw-gap-m tw-p-s tw-text-texts-enfasis tw-fill-texts-enfasis tw-bg-bg tw-rounded-lg tw-px-l tw-h-[30px] tw-shadow-button-primary hover:tw-shadow-button-primary-hover",children:[t.jsx(_.Icons,{icon:"filter",size:"xs",strokeWidth:5,color:g.primary.regular}),"Filtrar"]}),t.jsx("button",{className:"tw-hidden",id:"filter-button",onClick:()=>{a(r)}}),t.jsx(o,{children:s})]})},yt=s=>{let e={};return Object.entries(s).forEach(([n,a])=>{if(n.includes(".")){let[r,o]=n.split(".");e[r]=e[r]||{},e[r][o]=a}else e[n]=a}),e},St=w.createContext({}),Zt=({children:s})=>{const[e,n]=w.useState({}),[a,r]=w.useState({}),[o,i]=w.useState([]),[c,l]=w.useState(""),x=({name:m,value:p})=>{function h(b){return!isNaN(b)&&b!==null&&b!==""?parseFloat(b):null}let y=h(p);r(b=>{let j={...b},T=o==null?void 0:o.find(S=>S.label.toLowerCase().replace(/ /g,"_")===m);return T?j[T.id]=y??p:j[m]=y??p,j})};w.useEffect(()=>{let m=o.map(p=>p.id==="owner.config"?[p.id,"yo_y_mis_equipos"]:p.id==="dependency"?[p.id,"ambas"]:[p.id,null]);r(p=>{let h={search:p==null?void 0:p.search,taskName:p==null?void 0:p.taskName};return h={...h,...Object.fromEntries(m)},h})},[o]);const d=()=>{let m=o.map(p=>p.id==="owner.config"?[p.id,"yo_y_mis_equipos"]:p.id==="dependency"?[p.id,"ambas"]:[p.id,null]);r(Object.fromEntries(m)),n(yt(Object.fromEntries(m)))},v=m=>({1:"Muy facil",2:"Facil",3:"Media",4:"Dificil",5:"Muy dificil"})[m],N=()=>{let m=yt(a);m.difficulty&&(m.difficulty=v(m.difficulty)),n(m)};return t.jsx(St.Provider,{value:{fields:o,filters:e,path:c,defineFields:i,updateFilters:x,cleanFilters:d,applyFilters:N,initialFilters:a,selectPath:l},children:s})},W=()=>w.useContext(St);function te(s,e=300,n={leading:!1,trailing:!0}){let a,r=null;return function(...o){const i=Date.now(),c=n.leading&&!r;clearTimeout(a),c&&s(...o),r=i,a=setTimeout(()=>{n.trailing&&(!n.leading||i-r>=e)&&(s(...o),r=null)},e)}}const V=({imageUrl:s="https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png",alt:e="avatar",size:n="s"})=>{const a={xs:"tw-w-[24px] tw-h-[24px] tw-min-w-[24px] tw-min-h-[24px]",s:"tw-w-[28px] tw-h-[28px] tw-min-w-[28px] tw-min-h-[28px]",m:"tw-w-[32px] tw-h-[32px] tw-min-w-[32px] tw-min-h-[32px]",l:"tw-w-[36px] tw-h-[36px] tw-min-w-[36px] tw-min-h-[36px]",xl:"tw-w-[40px] tw-h-[40px] tw-min-w-[40px] tw-min-h-[40px]",xxl:"tw-w-[44px] tw-h-[44px] tw-min-w-[44px] tw-min-h-[44px]"}[n];return t.jsx("img",{src:s===""?"https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png":s,alt:e??"avatar",className:`${a} tw-rounded-full tw-bg-containers tw-border-2 tw-border-white`})},ee="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='uuid-870f9847-3249-4f3d-96c6-7627dd5f9e7b'%20data-name='Iconos'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3e%3cdefs%3e%3cstyle%3e%20.uuid-4d76d382-032b-400f-b22d-b6e7be4cfaae%20{%20fill:%20none;%20stroke:%20%23252525;%20stroke-linecap:%20round;%20stroke-linejoin:%20round;%20stroke-width:%204px;%20}%20%3c/style%3e%3c/defs%3e%3ccircle%20class='uuid-4d76d382-032b-400f-b22d-b6e7be4cfaae'%20cx='19.79'%20cy='19.79'%20r='13.54'/%3e%3cline%20class='uuid-4d76d382-032b-400f-b22d-b6e7be4cfaae'%20x1='41.67'%20y1='41.67'%20x2='29.17'%20y2='29.17'/%3e%3c/svg%3e",Ft=({options:s,onselect:e})=>{const[n,a]=w.useState(null),r=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),o=[...s].filter(i=>i.name.toLowerCase().includes((n==null?void 0:n.toLowerCase())??""));return t.jsxs("div",{className:"tw-h-fit tw-w-full tw-min-w-max",children:[t.jsxs("div",{className:"tw-relative tw-flex tw-items-center",children:[t.jsx("input",{id:r,value:n??"",onChange:i=>a(i.target.value),type:"text",className:"tw-w-full tw-h-[32px] tw-bg-bg-card tw-border-cards tw-rounded-lg tw-p-2",placeholder:"Buscar"}),t.jsx("div",{className:"tw-absolute tw-right-[8px]",children:t.jsx("img",{src:ee,alt:"Icono",className:"tw-w-[12px] tw-h-[12px]"})})]}),t.jsx("div",{className:"tw-bg-bg-card tw-border-cards tw-rounded-lg tw-p-2 tw-flex tw-flex-col tw-gap-s tw-overflow-y-auto tw-max-h-[120px] tw-min-w-max",children:o.map(i=>t.jsxs("button",{onClick:()=>{e(i)},className:"tw-flex tw-gap-s tw-items-center tw-max-w-[200px] tw-min-w-full hover:tw-bg-primary-light tw-cursor-pointer",children:[i.image&&t.jsx(V,{imageUrl:i.image,alt:i.name}),t.jsx("p",{className:"tw-text-s tw-py-m tw-font-normal tw-text-texts-subtext tw-content-text tw-truncate",children:i.name})]}))})]})},se=({error:s,options:e,onSelect:n,initialValue:a})=>{const[r,o]=w.useState(!1),[i,c]=w.useState((a==null?void 0:a.name)??null);return w.useEffect(()=>{a&&c(a)},[a]),t.jsxs("div",{className:"tw-relative",children:[t.jsxs("div",{onBlur:()=>o(!1),onClick:()=>o(!r),className:`tw-z-[1] tw-cursor-pointer tw-w-full tw-bg-bg-card ${s?"tw-shadow-danger-regular tw-border-2 tw-border-danger-regular":"tw-shadow-input"} tw-h-[30px] tw-rounded-md tw-flex tw-justify-between tw-items-center tw-pl-2 ${s?"tw-text-danger-regular":i?"tw-text-texts-subtext":"tw-text-texts-placeholder"}`,children:[t.jsx("p",{children:(i==null?void 0:i.name)??"Selecciona una opción"}),t.jsx(_.Icons,{icon:"angle_down_outline",color:s?g.danger.regular:g.texts.placeholder})]}),r&&t.jsx("div",{className:"absolute tw-w-full tw-shadow-md tw-rounded-lg tw-z-[10]",children:t.jsx(Ft,{onselect:l=>{c(l),o(!1),n&&n(l)},options:e})})]})},ae=()=>{const{fields:s,updateFilters:e,cleanFilters:n,applyFilters:a,initialFilters:r}=W();return t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-l tw-min-w-[250px] tw-z-[100]",children:[t.jsxs("div",{className:"tw-flex tw-justify-between tw-items-center",children:[t.jsx("p",{className:"tw-text-texts tw-text-2xl",children:"Filtros"}),t.jsx("button",{className:"tw-text-lg tw-font-semibold tw-flex tw-cursor-pointer tw-items-center tw-gap-m tw-p-s tw-text-texts-enfasis tw-fill-texts-enfasis tw-bg-bg tw-rounded-lg tw-px-l tw-h-fit tw-shadow-button-primary hover:tw-shadow-button-primary-hover",onClick:n,children:"Limpiar"})]}),t.jsx("div",{className:"tw-flex tw-flex-col tw-gap-m",children:s==null?void 0:s.map((o,i)=>{var c;return t.jsxs("div",{style:{zIndex:10-i},children:[t.jsx("p",{className:"tw-text-xl z-[1]",children:o.label}),(o==null?void 0:o.type)==="select"?t.jsx("div",{className:"tw-relative tw-z-[10]",children:t.jsx(se,{error:!1,options:o==null?void 0:o.options,onSelect:l=>{e({name:o==null?void 0:o.id,value:l==null?void 0:l.id})},initialValue:(c=o==null?void 0:o.options)==null?void 0:c.find(l=>l.id===(r==null?void 0:r[o==null?void 0:o.id]))})}):t.jsx("input",{className:"tw-w-full tw-h-[30px] tw-shadow-input tw-rounded-lg tw-p-s",type:o.type,value:r==null?void 0:r[o==null?void 0:o.id],name:o.label.toLowerCase().replace(/ /g,"_"),onChange:te(l=>{var x,d;return e({name:(x=l==null?void 0:l.target)==null?void 0:x.name,value:(d=l==null?void 0:l.target)==null?void 0:d.value})},1e3)})]},i)})}),t.jsx("button",{className:"tw-bg-primary-regular hover:tw-bg-primary-dark tw-text-white tw-rounded-md tw-py-s tw-text-xl",onClick:a,children:"Filtrar"})]})},Y=s=>{const e=a=>Object.prototype.toString.call(a)==="[object Object]",n=a=>a.attributes?{id:a.id,...a.attributes}:a;if(Array.isArray(s))return s.map(a=>Y(a));if(e(s)){Array.isArray(s.data)?s=[...s.data]:e(s.data)?s=n({...s.data}):s.data===null?s=null:s=n(s);for(const a in s)s[a]=Y(s[a]);return s}return s};class re{static toCampaignTasks(e){var a,r,o,i,c,l,x,d,v,N,m,p;let n=[];return e!=null&&e.responsable&&n.push({id:e.responsable.id,name:e.responsable.nombre,image:(c=(i=(o=(r=(a=e.responsable)==null?void 0:a.userOBP)==null?void 0:r.imagen)==null?void 0:o.formats)==null?void 0:i.thumbnail)==null?void 0:c.url}),(l=e==null?void 0:e.equipo)!=null&&l.miembros&&e.equipo.miembros.forEach(h=>{var y,b,j,T;n!=null&&n.find(S=>S.id===h.idUser.id)||h.idUser&&n.push({id:h.idUser.id,name:h.idUser.nombre,image:(T=(j=(b=(y=h==null?void 0:h.userOBP)==null?void 0:y.imagen)==null?void 0:b.formats)==null?void 0:j.thumbnail)==null?void 0:T.url})}),{paused:e==null?void 0:e.pausada,isPrincipalTask:(e==null?void 0:e.tarea_principal)??!1,projectName:((x=e==null?void 0:e.proyecto)==null?void 0:x.nombre)??null,orden:(e==null?void 0:e.orden)??null,id:(e==null?void 0:e.id)??null,task:(e==null?void 0:e.texto_corto)??null,status:(e==null?void 0:e.estatus)??null,difficulty:(e==null?void 0:e.nivel_dificultad)??null,priority:(e==null?void 0:e.prioridad)??0,endDate:new Date((e==null?void 0:e.ffin)??null),startDate:new Date((e==null?void 0:e.finicio)??null),mediumName:(e==null?void 0:e.nombre_medio)??null,users:n,repeatsToDo:(e==null?void 0:e.repeticiones)??null,repeats:(e==null?void 0:e.repeticiones_realizadas)??null,comments:((d=e==null?void 0:e.comentarios)==null?void 0:d.length)??null,willBePaused:e==null?void 0:e.es_pausable,statusRequiredTask:((v=e==null?void 0:e.id_t_requerida)==null?void 0:v.estatus)??null,nameRequiredTask:((N=e==null?void 0:e.id_t_requerida)==null?void 0:N.texto_corto)??null,responsible:((m=e==null?void 0:e.responsable)==null?void 0:m.id)??null,tasks:((p=e==null?void 0:e.tareas)==null?void 0:p.map(h=>({id:h.id,name:h.texto_corto,status:h.estatus})))??null,atraso:(e==null?void 0:e.atraso)??null,categoria:(e==null?void 0:e.categoria)??null}}}const ne=async({filters:s,tasks_api:e,project:n})=>{try{const a=await e.get("/api/listado_tareas_flujo",{params:{...s,project:{id:n},includeAllTasks:!0}});return Y(a.data.tareas).map(re.toCampaignTasks)}catch(a){console.log(a)}},qt=w.createContext({}),le=({children:s,user:e,url:n,mode:a})=>{const r=a==="prod"?"https://services.imjmedia.com.mx":"https://devobp.imjmedia.com.mx",o=Ct.create({baseURL:n,headers:{Authorization:`Bearer ${e.accessToken}`},paramsSerializer:l=>Tt.stringify(l,{encodeValuesOnly:!0})}),i=()=>r,c=l=>l==="undefined"?"":`${r}${l}`;return t.jsx(qt.Provider,{value:{tasks_api:o,getOBPUrlApi:i,getImageOBP:c},children:s})},L=()=>w.useContext(qt),Pt=w.createContext({}),oe=({children:s,user:e,url:n})=>{const a=Ct.create({baseURL:n,headers:{Authorization:`Bearer ${e.accessToken}`},paramsSerializer:r=>Tt.stringify(r,{encodeValuesOnly:!0})});return t.jsx(Pt.Provider,{value:{user:e,tasks_api:a},children:s})},O=()=>w.useContext(Pt),Mt=w.createContext({}),At=({children:s,project:e})=>{var b;const[n,a]=w.useState([]),[r,o]=w.useState(!1),[i,c]=w.useState([]),{tasks_api:l}=L(),{filters:x}=W(),{user:d}=O(),[v,N]=w.useState({owner:{user:d.id,config:((b=x==null?void 0:x.owner)==null?void 0:b.config)??"yo_y_mis_equipos"},project:{id:e}});w.useEffect(()=>{var j;if(Object.keys(x).length>0){const T={...x,owner:{user:d.id,config:((j=x==null?void 0:x.owner)==null?void 0:j.config)??"yo_y_mis_equipos"},project:{id:e}};N(T)}},[x,d.id,e]);const m=I.useQuery({queryKey:["tasksProject",v,e],queryFn:()=>{const j={...v,taskName:x==null?void 0:x.taskName,owner:{...v.owner,config:v.owner.config||"yo_y_mis_equipos"}};return ne({filters:j,project:e,tasks_api:l})}}),p=j=>{a(T=>[...T,j])},h=j=>{c(T=>T.includes(j)?T.filter(S=>S!==j):[...T,j])},y=e??null;return t.jsx(Mt.Provider,{value:{tasksProject:m,selectedTasks:n,projectID:y,openTasks:i,selectTask:p,filtersToSend:v,openTask:h,isRefetching:r,project:e,filters:x,setIsRefetching:o},children:s})},tt=()=>w.useContext(Mt),ie=()=>t.jsxs("div",{className:"tw-bg-gray-200 tw-h-[150px] tw-w-full tw-animate-pulse tw-rounded-md tw-flex tw-flex-col tw-gap-[50px] tw-p-4",children:[t.jsxs("div",{className:"tw-flex tw-h-[30px] tw-gap-3",children:[t.jsx("div",{className:"tw-w-[30px] tw-min-w-[30px] tw-h-full tw-bg-gray-300 tw-rounded-full"}),t.jsx("div",{className:"tw-w-full tw-h-full tw-bg-gray-300"}),t.jsx("div",{className:"tw-w-[30px] tw-min-w-[30px] tw-h-full tw-bg-gray-300 tw-rounded-full"})]}),t.jsxs("div",{className:"tw-flex tw-justify-between tw-w-full tw-h-[30px] tw-gap-[50px]",children:[t.jsx("div",{className:"tw-w-full tw-h-[30px] tw-bg-gray-300"}),t.jsx("div",{className:"tw-w-full tw-h-[30px] tw-bg-gray-300"})]})]}),Et=w.createContext(null),ce=({children:s})=>{const[e,n]=w.useState({message:"",type:"success"}),a=(r,o)=>{n({message:r,type:o}),setTimeout(()=>n({message:"",type:"success"}),3e3)};return t.jsx(Et.Provider,{value:{toast:e,showSuccess:r=>a(r,"success"),showError:r=>a(r,"error")},children:s})},ut=()=>w.useContext(Et);class It{static toAtrasoReasons(e){return{id:e.id,motivo_imj:e.motivo_imj,categoria:e.categoria??null}}}const we=async({tasks_api:s})=>{try{const e=await s.get("/api/motivos",{params:{populate:{categoria:{fields:["id","nombre","tipo"]}},filters:{tipo:{$eq:"atraso"}}}});return Y(e.data).map(It.toAtrasoReasons)}catch(e){throw console.log("Error al obtener los motivos de atraso",e),`Error al obtener los motivos de atraso: ${e}`}},$t=({enabled:s=!1}={})=>{const{tasks_api:e}=L(),{user:n}=O(),a=I.useQueryClient(),{showSuccess:r,showError:o}=ut(),{filters:i,path:c}=W(),{data:l,isLoading:x}=I.useQuery({queryKey:["atraso_reasons"],queryFn:()=>we({tasks_api:e}),staleTime:1e3*60*60*24,enabled:s}),d=async()=>{const S=await e.get("/api/motivos",{params:{filters:{tipo:{$eq:"atraso"}}}});return Y(S.data).map(It.toAtrasoReasons)},v=async({taskId:S,motivoId:P,projectID:A})=>{try{return(await e.post("/api/atrasos",{data:{inicio:new Date,fin:null,motivo:P,proyecto:A,tarea:S,creada_por:n==null?void 0:n.id}})).data}catch(C){console.log("error",C)}},N=async S=>{try{return(await e.delete(`/api/atrasos/${S}`)).data}catch(P){console.log("error",P)}},m=async S=>{try{return(await e.put(`/api/atrasos/${S}`,{data:{fin:new Date}})).data}catch(P){console.log("error",P)}},p=async({taskId:S,projectID:P,motivo:A})=>{await b({taskId:S,motivoId:A,projectID:P})},h=async S=>{await j(S)},y=async S=>{await T(S)},{mutateAsync:b}=I.useMutation({mutationFn:v,onSuccess:()=>{r("Atraso registrado correctamente"),c==="kanban-general"&&(a.invalidateQueries({queryKey:["to_do_tasks",i]}),a.invalidateQueries({queryKey:["working_tasks",i]})),c==="kanban-campania"&&a.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{o("Error al registrar el atraso")}}),{mutateAsync:j}=I.useMutation({mutationFn:N,onSuccess:()=>{r("Atraso eliminado correctamente"),c==="kanban-general"&&(a.invalidateQueries({queryKey:["to_do_tasks"]}),a.invalidateQueries({queryKey:["working_tasks"]}),a.invalidateQueries({queryKey:["done_tasks"]})),c==="kanban-campania"&&a.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{o("Error al eliminar el atraso")}}),{mutateAsync:T}=I.useMutation({mutationFn:m,onSuccess:()=>{r("Atraso finalizado correctamente")},onError:()=>{o("Error al finalizar el atraso")}});return{atrasoReasons:l,isLoading:x,createAtraso:p,getAtrasoReasons:d,deleteAtraso:h,finalizarAtraso:y}},X=()=>{const{tasks_api:s}=L(),{user:e}=O(),{filters:n,path:a}=W(),r=I.useQueryClient(),{projectID:o}=tt(),{showSuccess:i,showError:c}=ut(),{finalizarAtraso:l}=$t({enabled:!1}),x=async({id:f})=>(await s.put(`/api/tareas/${f}`,{data:{estatus:1,responsable:e==null?void 0:e.id,updated_by:e==null?void 0:e.id}})).data,d=async({id:f})=>(await s.put(`/api/tareas/${f}`,{data:{estatus:0,responsable:e==null?void 0:e.id,updated_by:e==null?void 0:e.id}})).data,v=async({id:f,idAtraso:k})=>{const F=await s.post("/api/terminarTarea",{id_task:f,ended_at:new Date().toISOString(),id_user:e==null?void 0:e.id});return await l(k),F.data},N=async({id:f,repeats:k})=>(await s.put(`/api/tareas/${f}`,{data:{repeticiones_realizadas:k,updated_by:e==null?void 0:e.id}})).data,m=async({id:f,motiveId:k})=>{try{const F=await s.post("/api/pausarTarea",{taskId:f,userId:e==null?void 0:e.id,motivoId:k});return i("Tarea pausada correctamente"),F.data}catch(F){c("Error al pausar la tarea: "+F)}},p=async({id:f})=>{try{const k=await s.post("/api/reanudarTarea",{taskId:f});return i("Tarea reanudada correctamente"),k.data}catch(k){c("Error al reanudar la tarea: "+k)}},h=async({id:f,idNewResponsible:k,typeOfSelect:F})=>{let R={updated_by:e==null?void 0:e.id};return F==="responsible"&&(R={...R,responsable:k}),F==="team"&&(R={...R,responsable:null,equipo:k}),(await s.put(`/api/tareas/${f}`,{data:R})).data},y=async({id:f,data:k,user:F})=>{try{return(await s.put(`/api/tareas/${f}`,{data:{...k,updated_by:F==null?void 0:F.id}})).data}catch(R){console.error("Error updating the element:",R)}},b=async({id:f})=>{await S({id:f})},j=async({id:f,data:k,user:F})=>{await T({id:f,data:k,user:F})},{mutateAsync:T}=I.useMutation({mutationFn:y,onSuccess:()=>{i("Tarea actualizada correctamente");const f={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{a==="kanban-general"&&(r.invalidateQueries({queryKey:[f[a],n]}),r.invalidateQueries({queryKey:["done_tasks",n]}),r.invalidateQueries({queryKey:["working_tasks",n]})),a==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",n,o]}))}catch(k){console.error("Error invalidating queries:",k)}},onError:f=>{console.error("Failed to update the task.",f)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]})}}),{mutateAsync:S}=I.useMutation({mutationFn:x,onSuccess:()=>{const f={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{a==="kanban-general"&&(r.invalidateQueries({queryKey:[f[a],n]}),r.invalidateQueries({queryKey:["working_tasks",n]})),a==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",n,o]}))}catch(k){console.error("Error updating the element:",k)}},onError:f=>{console.error("Failed to update the task.",f)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:P}=I.useMutation({mutationFn:v,onSuccess:()=>{const f={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{r.setQueryData([f[a],n],k=>{console.log({oldData:k})}),a==="kanban-general"&&(r.invalidateQueries({queryKey:[f[a],n]}),r.invalidateQueries({queryKey:["done_tasks",n]}),r.invalidateQueries({queryKey:["working_tasks",n]})),a==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",n,o]}))}catch(k){console.error("Error invalidating queries:",k)}},onError:f=>{console.error("Failed to update the task.",f)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["done_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:A}=I.useMutation({mutationFn:N,onSuccess:()=>{const f={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{a==="kanban-general"&&(r.invalidateQueries({queryKey:[f[a],n]}),r.invalidateQueries({queryKey:["done_tasks",n]}),r.invalidateQueries({queryKey:["working_tasks",n]})),a==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",n,o]}))}catch(k){console.error("Error invalidating queries:",k)}},onError:f=>{console.error("Failed to update the task.",f)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["done_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:C}=I.useMutation({mutationFn:h,onSuccess:()=>{const f={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{a==="kanban-general"&&(r.invalidateQueries({queryKey:[f[a],n]}),r.invalidateQueries({queryKey:["done_tasks",n]}),r.invalidateQueries({queryKey:["working_tasks",n]})),a==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",n,o]}))}catch(k){console.error("Error invalidating queries:",k)}},onError:f=>{console.error("Failed to reassign the task.",f)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["done_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:M}=I.useMutation({mutationFn:d,onSuccess:()=>{const f={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{a==="kanban-general"&&(r.invalidateQueries({queryKey:[f[a],n]}),r.invalidateQueries({queryKey:["working_tasks",n]})),a==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",n,o]}))}catch(k){console.error("Error updating the element:",k)}},onError:f=>{console.error("Failed to update the task.",f)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}});return{updatingTask:j,updateTask:y,startTask:async({id:f})=>{await M({id:f})},startWorking:b,completeTask:async({id:f,idAtraso:k})=>{await P({id:f,idAtraso:k})},reasignResponsible:async({id:f,idNewResponsible:k,typeOfSelect:F})=>{await C({id:f,idNewResponsible:k,typeOfSelect:F})},updateUnitys:async({repeats:f,id:k})=>{await A({repeats:f,id:k})},pauseTask:async({id:f,motiveId:k})=>{console.log({taksId:f,motivoId:k,user:e==null?void 0:e.id})},postPauseTask:m,postReanudeTask:p}},de=({id:s,idAtraso:e})=>{const[n,a]=w.useState(!1),{completeTask:r}=X();return{checked:n,checkTask:()=>{a(!n),r({id:s,idAtraso:e})}}},Dt=({id:s,nameRequiredTask:e,statusRequiredTask:n,status:a,idAtraso:r})=>{const{checked:o,checkTask:i}=de({id:s,idAtraso:r});let c=Math.random().toString();const l=e!==""&&n===2;return t.jsxs(t.Fragment,{children:[a===2&&t.jsx("div",{className:"tw-bg-success-regular tw-rounded-full tw-flex tw-items-center tw-justify-center tw-mx-[2px] tw-transition-all",children:t.jsx(_.Icons,{icon:"circle_checked",color:"white",strokeWidth:4,size:"xs"})}),l||!e?a===1?t.jsx("label",{htmlFor:c,className:o?"tw-bg-success-regular tw-rounded-full tw-w-[20px] tw-h-[20px] tw-flex tw-items-center tw-justify-center tw-mx-[2px] tw-transition-all":"tw-transition-colors",children:t.jsx(_.Icons,{icon:o?"check_outline":"circle_checked",color:o?"white":g.texts.placeholder,strokeWidth:4,size:o?"xs":"s"})}):t.jsx(t.Fragment,{children:" "}):t.jsx(_.Tooltip,{dispatch:t.jsx("label",{className:"tw-cursor-help",children:t.jsx(_.Icons,{icon:"info_circle",color:g.warning.regular,strokeWidth:4})}),children:t.jsxs("div",{className:"tw-absolute tw-ml-[-2rem] tw-shadow-xl tw-shadow-black-300 tw-top-full tw-left-0 tw-mt-2 tw-z-10 tw-p-l tw-max-w-[400px] tw-w-fit tw-bg-warning-light tw-rounded-lg tw-border-l-[5px] tw-border-warning-regular tw-text-warning-dark tw-text-s tw-flex tw-flex-col tw-gap-m",children:[t.jsxs("p",{className:"tw-font-bold tw-w-[210px]",children:[" ","Requiere completar su tarea requerida:"," "]}),t.jsxs("p",{children:[" ",e," "]})]})}),t.jsx("input",{id:c,checked:o,onChange:i,type:"checkbox",className:"tw-hidden"})]})},jt=({trigger:s,user:e,showUser:n=!0})=>t.jsx(_.Tooltip,{dispatch:s,children:n&&t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2 tw-bg-bg-card tw-w-fit tw-h-fit tw-p-2 tw-rounded-lg tw-border-containers",children:[t.jsx(V,{imageUrl:e.image??"",alt:e.name}),t.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:e.name})]})});class ue{static toDomain(e){return{id:e.id,name:e.nombre,color:e.color}}}const xe=()=>{const{tasks_api:s}=L();return{teams:I.useQuery({queryKey:["teams","all"],queryFn:async()=>{const n=await s.get("/api/equipos");return Y(n.data).map(ue.toDomain)}})}};class pe{static toUsers(e){var n,a,r;return{id:e.id,name:e.nombre,image:(r=(a=(n=e.imagen)==null?void 0:n.formats)==null?void 0:a.thumbnail)==null?void 0:r.url,tasksUser:{email:e.tasksUser.email,id:e.tasksUser.id,nombre:e.tasksUser.nombre}}}}const me=async({tasks_api:s})=>{try{const e=await s.get("/api/allOBPUsers");return Y(e.data).map(pe.toUsers)}catch(e){throw console.log("Error al obtener los usuarios comerciales",e),`Error al obtener los usuarios comerciales: ${e}`}},ge=()=>{const{tasks_api:s}=L();return{users:I.useQuery({queryKey:["users"],queryFn:()=>me({tasks_api:s}),staleTime:1e3*60*60*24})}},xt=s=>new Intl.DateTimeFormat("es-MX",{month:"long"}).format(s);function he(s){const e=["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],n=new Date(s).getDay();return e[n]}const vt=s=>{let e=s||new Date,n=e.getDate(),a=xt(e.getMonth()).slice(0,3),r=e.getFullYear().toString().slice(-2),o=he(e).slice(0,3);return`${o.charAt(0).toUpperCase()+o.slice(1)} ${n} ${a.charAt(0).toUpperCase()+a.slice(1)} ${r}`},pt=(s,e)=>({...s,image:s.image?`${e}${s.image}`:""}),Rt=({users:s,onClick:e,responsible:n,role:a})=>{const{getOBPUrlApi:r}=L(),o=`button-assign-users-${Math.random().toString(36).substring(2,15)}`,{setElementPosition:i,position:c,clearPosition:l}=dt(),x=w.useRef(null),d="Project Manager",v=()=>n?null:s.length>3&&t.jsx(_.Tooltip,{dispatch:t.jsx("div",{className:"tw-w-[28px] tw-h-[28px] tw-rounded-full tw-bg-primary-regular tw-flex tw-items-center tw-justify-center tw-border-2 tw-border-white tw-ml-[-8px]",children:t.jsx("p",{className:"tw-text-s tw-font-bold tw-text-white ",children:`+${s.length-3}`})}),children:t.jsx("div",{className:"tw-bg-bg-card tw-w-fit tw-h-fit tw-p-2 tw-rounded-lg tw-border-containers",children:s==null?void 0:s.slice(3).map((h,y)=>t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2 ",children:[t.jsx(V,{imageUrl:h.image??"",alt:h.name},y),t.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:h.name})]},y))})}),N=()=>{if(n){let h=s.find(y=>y.id===n);return t.jsx("div",{children:t.jsx(jt,{trigger:t.jsx(V,{imageUrl:h==null?void 0:h.image,alt:h==null?void 0:h.name},n),user:h,showUser:!(c!=null&&c.x)})})}return(s==null?void 0:s.length)>0&&s.slice(0,3).map((h,y)=>t.jsx("div",{className:`${y===0?"":"tw-ml-[-8px]"}`,children:t.jsx(jt,{trigger:t.jsx(V,{imageUrl:h.image,alt:h.name},y),user:h,showUser:!(c!=null&&c.x)})}))},m=({children:h})=>t.jsx("label",{ref:x,htmlFor:o,className:"tw-cursor-pointer tw-flex tw-items-center",children:h});if(s.length===0)return t.jsx(m,{children:t.jsx(_.Icons,{icon:"user",size:"xs",strokeWidth:3})});const p=()=>{var A;const[h,y]=w.useState(),[b,j]=w.useState("responsible"),{teams:T}=xe(),{users:S}=ge();w.useEffect(()=>{var C,M;x.current&&y(((c==null?void 0:c.x)??0)-(((M=(C=x.current)==null?void 0:C.getBoundingClientRect())==null?void 0:M.width)??0))},[x==null?void 0:x.current,c==null?void 0:c.x]);const P=()=>{const C=[{id:"responsible",label:"Responsable"}];return t.jsx("div",{className:"tw-w-full tw-flex tw-justify-center tw-gap-l tw-text-texts-placeholder tw-font-bold",children:C.map((M,Q)=>t.jsx("button",{className:`tw-w-full tw-text-sm tw-border-texts-placeholder tw-text-center ${b===M.id?"tw-text-primary-pastel":""} ${Q===C.length-1?"tw-border-r-0":" tw-border-r-2"}`,onClick:()=>j(M.id),children:M.label}))})};return a!==d?null:(c==null?void 0:c.x)&&et.createPortal(t.jsx("div",{"data-portal-host":!0,className:`absolute tw-w-[300px] tw-h-fit tw-p-[1rem] ${h?"tw-block":"tw-hidden"}`,style:{top:`${c==null?void 0:c.y}px`,left:`${h}px`,zIndex:1},children:t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-m tw-bg-bg-card tw-border-cards tw-rounded-lg tw-p-2 tw-max-h-[200px] tw-overflow-y-hidden",style:{boxShadow:"0px 2px 16px 0px rgba(0, 0, 0, 0.25)"},children:[t.jsx(P,{}),t.jsx(Ft,{options:b==="team"?T.data.map(C=>({id:C.id,name:C.name,image:""})):(A=S.data)==null?void 0:A.map(C=>pt(C,r())),onselect:C=>{var M;l(),e&&e((M=C.tasksUser)==null?void 0:M.id,b)}})]})}),document.body)};return t.jsxs(t.Fragment,{children:[t.jsxs(m,{children:[N(),v()]}),t.jsx("button",{className:"tw-hidden",id:o,onClick:()=>i(x)}),t.jsx(p,{})]})},zt=({priority:s,id:e,withLabel:n=!1})=>{var N,m,p,h,y;const{updatingTask:a}=X(),r=Math.random().toString(36),[o,i]=w.useState(null),{user:c}=O(),[l,x]=w.useState(s);w.useEffect(()=>{x(s)},[s]);const d={0:{title:"Normal",color:g.primary.regular},1:{title:"Baja",color:g.success.regular},2:{title:"Media",color:g.warning.regular},3:{title:"Alta",color:g.danger.regular}},v=()=>{if(!o)return null;const b=({priorityTask:j,text:T})=>{var S,P;return t.jsxs("button",{onClick:async()=>{i(null),await a({id:e,data:{prioridad:j},user:c==null?void 0:c.id}),x(j)},className:"tw-flex tw-gap-m tw-items-center tw-px-l tw-py-s hover:tw-bg-primary-light",children:[t.jsx(_.Icons,{icon:"flag",size:"xs",strokeWidth:4,color:(S=d[j??0])==null?void 0:S.color}),t.jsx("p",{className:"tw-text-sm",style:{color:(P=d[j??0])==null?void 0:P.color},children:T})]})};return et.createPortal(t.jsx("div",{onBlur:()=>{i(null)},id:`${r}-options`,style:{top:`${o.y+5}px`,left:`${o.x+5}px`,zIndex:50},className:`tw-absolute tw-h-fit tw-p-m tw-flex tw-flex-col tw-gap-2 tw-bg-bg-card tw-rounded-xl tw-shadow-lg
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime");require("@imj_media/imj-ui/styles.css");const I=require("@tanstack/react-query"),w=require("react"),_=require("@imj_media/tasks-modules"),et=require("react-dom"),Ct=require("axios"),Tt=require("qs"),lt=require("date-fns"),wt=require("date-fns/locale"),K=require("@imj_media/imj-ui"),ct=require("react-hook-form"),Jt=require("primereact/paginator"),g={bg:{content:"#FAFAFA"},texts:{DEFAULT:"#252525",subtext:"#4f4f4f",placeholder:"#929292"},primary:{regular:"#425CAC"},success:{dark:"#368156",regular:"#43B071"},danger:{dark:"#8C352C",regular:"#C34335"},warning:{dark:"#B4782F",regular:"#D38A31"},silver:{silver_light:" #F5F5F5",silver_dark:" #E9E9E9"},progressbar:{orange_regular:"#DC8921",blue_regular:"#3658C1",green_regular:"#039B59"},gray:{gray_regular:"#D1D1D1",gray_dark:"#C4C4C4"},black:{black_light:"#929292",black_medium:"#4F4F4F",black_dark:"#131313"}},dt=()=>{const[s,e]=w.useState(null);return{position:s,setElementPosition:o=>{var x;let i=(x=o.current)==null?void 0:x.getBoundingClientRect(),c=(i==null?void 0:i.x)+((i==null?void 0:i.width)??0),l=(i==null?void 0:i.y)+(i==null?void 0:i.height);e(s?null:{x:c??0,y:l??0})},getChildrenSize:o=>{var i;return(i=o.current)==null?void 0:i.getBoundingClientRect()},clearPosition:()=>{e(null)}}},Xt=({children:s,filterChildren:e})=>{const{position:n,setElementPosition:a}=dt(),r=w.useRef(null),o=({children:i})=>{const[c,l]=w.useState();return w.useEffect(()=>{var x,d;e.current&&l(((n==null?void 0:n.x)??0)-(((d=(x=e.current)==null?void 0:x.getBoundingClientRect())==null?void 0:d.width)??0))},[e==null?void 0:e.current,n==null?void 0:n.x]),n&&et.createPortal(t.jsx("div",{className:`tw-absolute tw-w-fit tw-h-fit ${c?"tw-block":"tw-hidden"}`,style:{top:`${n==null?void 0:n.y}px`,left:`${c}px`,zIndex:1},"data-portal-host":!0,children:i}),document.body)};return t.jsxs(t.Fragment,{children:[t.jsxs("label",{ref:r,htmlFor:"filter-button",className:"tw-flex tw-cursor-pointer tw-text-xl tw-items-center tw-gap-m tw-p-s tw-text-texts-enfasis tw-fill-texts-enfasis tw-bg-bg tw-rounded-lg tw-px-l tw-h-[30px] tw-shadow-button-primary hover:tw-shadow-button-primary-hover",children:[t.jsx(_.Icons,{icon:"filter",size:"xs",strokeWidth:5,color:g.primary.regular}),"Filtrar"]}),t.jsx("button",{className:"tw-hidden",id:"filter-button",onClick:()=>{a(r)}}),t.jsx(o,{children:s})]})},yt=s=>{let e={};return Object.entries(s).forEach(([n,a])=>{if(n.includes(".")){let[r,o]=n.split(".");e[r]=e[r]||{},e[r][o]=a}else e[n]=a}),e},St=w.createContext({}),Zt=({children:s})=>{const[e,n]=w.useState({}),[a,r]=w.useState({}),[o,i]=w.useState([]),[c,l]=w.useState(""),x=({name:m,value:p})=>{function h(b){return!isNaN(b)&&b!==null&&b!==""?parseFloat(b):null}let y=h(p);r(b=>{let j={...b},T=o==null?void 0:o.find(S=>S.label.toLowerCase().replace(/ /g,"_")===m);return T?j[T.id]=y??p:j[m]=y??p,j})};w.useEffect(()=>{let m=o.map(p=>p.id==="owner.config"?[p.id,"yo_y_mis_equipos"]:p.id==="dependency"?[p.id,"ambas"]:[p.id,null]);r(p=>{let h={search:p==null?void 0:p.search,taskName:p==null?void 0:p.taskName};return h={...h,...Object.fromEntries(m)},h})},[o]);const d=()=>{let m=o.map(p=>p.id==="owner.config"?[p.id,"yo_y_mis_equipos"]:p.id==="dependency"?[p.id,"ambas"]:[p.id,null]);r(Object.fromEntries(m)),n(yt(Object.fromEntries(m)))},v=m=>({1:"Muy facil",2:"Facil",3:"Media",4:"Dificil",5:"Muy dificil"})[m],N=()=>{let m=yt(a);m.difficulty&&(m.difficulty=v(m.difficulty)),n(m)};return t.jsx(St.Provider,{value:{fields:o,filters:e,path:c,defineFields:i,updateFilters:x,cleanFilters:d,applyFilters:N,initialFilters:a,selectPath:l},children:s})},W=()=>w.useContext(St);function te(s,e=300,n={leading:!1,trailing:!0}){let a,r=null;return function(...o){const i=Date.now(),c=n.leading&&!r;clearTimeout(a),c&&s(...o),r=i,a=setTimeout(()=>{n.trailing&&(!n.leading||i-r>=e)&&(s(...o),r=null)},e)}}const V=({imageUrl:s="https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png",alt:e="avatar",size:n="s"})=>{const a={xs:"tw-w-[24px] tw-h-[24px] tw-min-w-[24px] tw-min-h-[24px]",s:"tw-w-[28px] tw-h-[28px] tw-min-w-[28px] tw-min-h-[28px]",m:"tw-w-[32px] tw-h-[32px] tw-min-w-[32px] tw-min-h-[32px]",l:"tw-w-[36px] tw-h-[36px] tw-min-w-[36px] tw-min-h-[36px]",xl:"tw-w-[40px] tw-h-[40px] tw-min-w-[40px] tw-min-h-[40px]",xxl:"tw-w-[44px] tw-h-[44px] tw-min-w-[44px] tw-min-h-[44px]"}[n];return t.jsx("img",{src:s===""?"https://www.uv.unach.mx/assets/img/prueba/directorio/userM.png":s,alt:e??"avatar",className:`${a} tw-rounded-full tw-bg-containers tw-border-2 tw-border-white`})},ee="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='uuid-870f9847-3249-4f3d-96c6-7627dd5f9e7b'%20data-name='Iconos'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2050%2050'%3e%3cdefs%3e%3cstyle%3e%20.uuid-4d76d382-032b-400f-b22d-b6e7be4cfaae%20{%20fill:%20none;%20stroke:%20%23252525;%20stroke-linecap:%20round;%20stroke-linejoin:%20round;%20stroke-width:%204px;%20}%20%3c/style%3e%3c/defs%3e%3ccircle%20class='uuid-4d76d382-032b-400f-b22d-b6e7be4cfaae'%20cx='19.79'%20cy='19.79'%20r='13.54'/%3e%3cline%20class='uuid-4d76d382-032b-400f-b22d-b6e7be4cfaae'%20x1='41.67'%20y1='41.67'%20x2='29.17'%20y2='29.17'/%3e%3c/svg%3e",Ft=({options:s,onselect:e})=>{const[n,a]=w.useState(null),r=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),o=[...s].filter(i=>i.name.toLowerCase().includes((n==null?void 0:n.toLowerCase())??""));return t.jsxs("div",{className:"tw-h-fit tw-w-full tw-min-w-max",children:[t.jsxs("div",{className:"tw-relative tw-flex tw-items-center",children:[t.jsx("input",{id:r,value:n??"",onChange:i=>a(i.target.value),type:"text",className:"tw-w-full tw-h-[32px] tw-bg-bg-card tw-border-cards tw-rounded-lg tw-p-2",placeholder:"Buscar"}),t.jsx("div",{className:"tw-absolute tw-right-[8px]",children:t.jsx("img",{src:ee,alt:"Icono",className:"tw-w-[12px] tw-h-[12px]"})})]}),t.jsx("div",{className:"tw-bg-bg-card tw-border-cards tw-rounded-lg tw-p-2 tw-flex tw-flex-col tw-gap-s tw-overflow-y-auto tw-max-h-[120px] tw-min-w-max",children:o.map(i=>t.jsxs("button",{onClick:()=>{e(i)},className:"tw-flex tw-gap-s tw-items-center tw-max-w-[200px] tw-min-w-full hover:tw-bg-primary-light tw-cursor-pointer",children:[i.image&&t.jsx(V,{imageUrl:i.image,alt:i.name}),t.jsx("p",{className:"tw-text-s tw-py-m tw-font-normal tw-text-texts-subtext tw-content-text tw-truncate",children:i.name})]}))})]})},se=({error:s,options:e,onSelect:n,initialValue:a})=>{const[r,o]=w.useState(!1),[i,c]=w.useState((a==null?void 0:a.name)??null);return w.useEffect(()=>{a&&c(a)},[a]),t.jsxs("div",{className:"tw-relative",children:[t.jsxs("div",{onBlur:()=>o(!1),onClick:()=>o(!r),className:`tw-z-[1] tw-cursor-pointer tw-w-full tw-bg-bg-card ${s?"tw-shadow-danger-regular tw-border-2 tw-border-danger-regular":"tw-shadow-input"} tw-h-[30px] tw-rounded-md tw-flex tw-justify-between tw-items-center tw-pl-2 ${s?"tw-text-danger-regular":i?"tw-text-texts-subtext":"tw-text-texts-placeholder"}`,children:[t.jsx("p",{children:(i==null?void 0:i.name)??"Selecciona una opción"}),t.jsx(_.Icons,{icon:"angle_down_outline",color:s?g.danger.regular:g.texts.placeholder})]}),r&&t.jsx("div",{className:"absolute tw-w-full tw-shadow-md tw-rounded-lg tw-z-[10]",children:t.jsx(Ft,{onselect:l=>{c(l),o(!1),n&&n(l)},options:e})})]})},ae=()=>{const{fields:s,updateFilters:e,cleanFilters:n,applyFilters:a,initialFilters:r}=W();return t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-l tw-min-w-[250px] tw-z-[100]",children:[t.jsxs("div",{className:"tw-flex tw-justify-between tw-items-center",children:[t.jsx("p",{className:"tw-text-texts tw-text-2xl",children:"Filtros"}),t.jsx("button",{className:"tw-text-lg tw-font-semibold tw-flex tw-cursor-pointer tw-items-center tw-gap-m tw-p-s tw-text-texts-enfasis tw-fill-texts-enfasis tw-bg-bg tw-rounded-lg tw-px-l tw-h-fit tw-shadow-button-primary hover:tw-shadow-button-primary-hover",onClick:n,children:"Limpiar"})]}),t.jsx("div",{className:"tw-flex tw-flex-col tw-gap-m",children:s==null?void 0:s.map((o,i)=>{var c;return t.jsxs("div",{style:{zIndex:10-i},children:[t.jsx("p",{className:"tw-text-xl z-[1]",children:o.label}),(o==null?void 0:o.type)==="select"?t.jsx("div",{className:"tw-relative tw-z-[10]",children:t.jsx(se,{error:!1,options:o==null?void 0:o.options,onSelect:l=>{e({name:o==null?void 0:o.id,value:l==null?void 0:l.id})},initialValue:(c=o==null?void 0:o.options)==null?void 0:c.find(l=>l.id===(r==null?void 0:r[o==null?void 0:o.id]))})}):t.jsx("input",{className:"tw-w-full tw-h-[30px] tw-shadow-input tw-rounded-lg tw-p-s",type:o.type,value:r==null?void 0:r[o==null?void 0:o.id],name:o.label.toLowerCase().replace(/ /g,"_"),onChange:te(l=>{var x,d;return e({name:(x=l==null?void 0:l.target)==null?void 0:x.name,value:(d=l==null?void 0:l.target)==null?void 0:d.value})},1e3)})]},i)})}),t.jsx("button",{className:"tw-bg-primary-regular hover:tw-bg-primary-dark tw-text-white tw-rounded-md tw-py-s tw-text-xl",onClick:a,children:"Filtrar"})]})},Y=s=>{const e=a=>Object.prototype.toString.call(a)==="[object Object]",n=a=>a.attributes?{id:a.id,...a.attributes}:a;if(Array.isArray(s))return s.map(a=>Y(a));if(e(s)){Array.isArray(s.data)?s=[...s.data]:e(s.data)?s=n({...s.data}):s.data===null?s=null:s=n(s);for(const a in s)s[a]=Y(s[a]);return s}return s};class re{static toCampaignTasks(e){var a,r,o,i,c,l,x,d,v,N,m,p;let n=[];return e!=null&&e.responsable&&n.push({id:e.responsable.id,name:e.responsable.nombre,image:(c=(i=(o=(r=(a=e.responsable)==null?void 0:a.userOBP)==null?void 0:r.imagen)==null?void 0:o.formats)==null?void 0:i.thumbnail)==null?void 0:c.url}),(l=e==null?void 0:e.equipo)!=null&&l.miembros&&e.equipo.miembros.forEach(h=>{var y,b,j,T;n!=null&&n.find(S=>S.id===h.idUser.id)||h.idUser&&n.push({id:h.idUser.id,name:h.idUser.nombre,image:(T=(j=(b=(y=h==null?void 0:h.userOBP)==null?void 0:y.imagen)==null?void 0:b.formats)==null?void 0:j.thumbnail)==null?void 0:T.url})}),{paused:e==null?void 0:e.pausada,isPrincipalTask:(e==null?void 0:e.tarea_principal)??!1,projectName:((x=e==null?void 0:e.proyecto)==null?void 0:x.nombre)??null,orden:(e==null?void 0:e.orden)??null,id:(e==null?void 0:e.id)??null,task:(e==null?void 0:e.texto_corto)??null,status:(e==null?void 0:e.estatus)??null,difficulty:(e==null?void 0:e.nivel_dificultad)??null,priority:(e==null?void 0:e.prioridad)??0,endDate:new Date((e==null?void 0:e.ffin)??null),startDate:new Date((e==null?void 0:e.finicio)??null),mediumName:(e==null?void 0:e.nombre_medio)??null,users:n,repeatsToDo:(e==null?void 0:e.repeticiones)??null,repeats:(e==null?void 0:e.repeticiones_realizadas)??null,comments:((d=e==null?void 0:e.comentarios)==null?void 0:d.length)??null,willBePaused:e==null?void 0:e.es_pausable,statusRequiredTask:((v=e==null?void 0:e.id_t_requerida)==null?void 0:v.estatus)??null,nameRequiredTask:((N=e==null?void 0:e.id_t_requerida)==null?void 0:N.texto_corto)??null,responsible:((m=e==null?void 0:e.responsable)==null?void 0:m.id)??null,tasks:((p=e==null?void 0:e.tareas)==null?void 0:p.map(h=>({id:h.id,name:h.texto_corto,status:h.estatus})))??null,atraso:(e==null?void 0:e.atraso)??null,categoria:(e==null?void 0:e.categoria)??null}}}const ne=async({filters:s,tasks_api:e,project:n})=>{try{const a=await e.get("/api/listado_tareas_flujo",{params:{...s,project:{id:n},includeAllTasks:!0}});return Y(a.data.tareas).map(re.toCampaignTasks)}catch(a){console.log(a)}},qt=w.createContext({}),le=({children:s,user:e,url:n,mode:a})=>{const r=a==="prod"?"https://services.imjmedia.com.mx":"https://devobp.imjmedia.com.mx",o=Ct.create({baseURL:n,headers:{Authorization:`Bearer ${e.accessToken}`},paramsSerializer:l=>Tt.stringify(l,{encodeValuesOnly:!0})}),i=()=>r,c=l=>l==="undefined"?"":`${r}${l}`;return t.jsx(qt.Provider,{value:{tasks_api:o,getOBPUrlApi:i,getImageOBP:c},children:s})},L=()=>w.useContext(qt),Pt=w.createContext({}),oe=({children:s,user:e,url:n})=>{const a=Ct.create({baseURL:n,headers:{Authorization:`Bearer ${e.accessToken}`},paramsSerializer:r=>Tt.stringify(r,{encodeValuesOnly:!0})});return t.jsx(Pt.Provider,{value:{user:e,tasks_api:a},children:s})},O=()=>w.useContext(Pt),Mt=w.createContext({}),At=({children:s,project:e})=>{var b;const[n,a]=w.useState([]),[r,o]=w.useState(!1),[i,c]=w.useState([]),{tasks_api:l}=L(),{filters:x}=W(),{user:d}=O(),[v,N]=w.useState({owner:{user:d.id,config:((b=x==null?void 0:x.owner)==null?void 0:b.config)??"yo_y_mis_equipos"},project:{id:e}});w.useEffect(()=>{var j;if(Object.keys(x).length>0){const T={...x,owner:{user:d.id,config:((j=x==null?void 0:x.owner)==null?void 0:j.config)??"yo_y_mis_equipos"},project:{id:e}};N(T)}},[x,d.id,e]);const m=I.useQuery({queryKey:["tasksProject",v,e],queryFn:()=>{const j={...v,taskName:x==null?void 0:x.taskName,owner:{...v.owner,config:v.owner.config||"yo_y_mis_equipos"}};return ne({filters:j,project:e,tasks_api:l})}}),p=j=>{a(T=>[...T,j])},h=j=>{c(T=>T.includes(j)?T.filter(S=>S!==j):[...T,j])},y=e??null;return t.jsx(Mt.Provider,{value:{tasksProject:m,selectedTasks:n,projectID:y,openTasks:i,selectTask:p,filtersToSend:v,openTask:h,isRefetching:r,project:e,filters:x,setIsRefetching:o},children:s})},tt=()=>w.useContext(Mt),ie=()=>t.jsxs("div",{className:"tw-bg-gray-200 tw-h-[150px] tw-w-full tw-animate-pulse tw-rounded-md tw-flex tw-flex-col tw-gap-[50px] tw-p-4",children:[t.jsxs("div",{className:"tw-flex tw-h-[30px] tw-gap-3",children:[t.jsx("div",{className:"tw-w-[30px] tw-min-w-[30px] tw-h-full tw-bg-gray-300 tw-rounded-full"}),t.jsx("div",{className:"tw-w-full tw-h-full tw-bg-gray-300"}),t.jsx("div",{className:"tw-w-[30px] tw-min-w-[30px] tw-h-full tw-bg-gray-300 tw-rounded-full"})]}),t.jsxs("div",{className:"tw-flex tw-justify-between tw-w-full tw-h-[30px] tw-gap-[50px]",children:[t.jsx("div",{className:"tw-w-full tw-h-[30px] tw-bg-gray-300"}),t.jsx("div",{className:"tw-w-full tw-h-[30px] tw-bg-gray-300"})]})]}),Et=w.createContext(null),ce=({children:s})=>{const[e,n]=w.useState({message:"",type:"success"}),a=(r,o)=>{n({message:r,type:o}),setTimeout(()=>n({message:"",type:"success"}),3e3)};return t.jsx(Et.Provider,{value:{toast:e,showSuccess:r=>a(r,"success"),showError:r=>a(r,"error")},children:s})},ut=()=>w.useContext(Et);class It{static toAtrasoReasons(e){return{id:e.id,motivo_imj:e.motivo_imj,categoria:e.categoria??null}}}const we=async({tasks_api:s})=>{try{const e=await s.get("/api/motivos",{params:{populate:{categoria:{fields:["id","nombre","tipo"]}},filters:{tipo:{$eq:"atraso"}}}});return Y(e.data).map(It.toAtrasoReasons)}catch(e){throw console.log("Error al obtener los motivos de atraso",e),`Error al obtener los motivos de atraso: ${e}`}},$t=({enabled:s=!1}={})=>{const{tasks_api:e}=L(),{user:n}=O(),a=I.useQueryClient(),{showSuccess:r,showError:o}=ut(),{filters:i,path:c}=W(),{data:l,isLoading:x}=I.useQuery({queryKey:["atraso_reasons"],queryFn:()=>we({tasks_api:e}),staleTime:1e3*60*60*24,enabled:s}),d=async()=>{const S=await e.get("/api/motivos",{params:{filters:{tipo:{$eq:"atraso"}}}});return Y(S.data).map(It.toAtrasoReasons)},v=async({taskId:S,motivoId:P,projectID:A})=>{try{return(await e.post("/api/atrasos",{data:{inicio:new Date,fin:null,motivo:P,proyecto:A,tarea:S,creada_por:n==null?void 0:n.id}})).data}catch(C){console.log("error",C)}},N=async S=>{try{return(await e.delete(`/api/atrasos/${S}`)).data}catch(P){console.log("error",P)}},m=async S=>{try{return(await e.put(`/api/atrasos/${S}`,{data:{fin:new Date}})).data}catch(P){console.log("error",P)}},p=async({taskId:S,projectID:P,motivo:A})=>{await b({taskId:S,motivoId:A,projectID:P})},h=async S=>{await j(S)},y=async S=>{await T(S)},{mutateAsync:b}=I.useMutation({mutationFn:v,onSuccess:()=>{r("Atraso registrado correctamente"),c==="kanban-general"&&(a.invalidateQueries({queryKey:["to_do_tasks",i]}),a.invalidateQueries({queryKey:["working_tasks",i]})),c==="kanban-campania"&&a.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{o("Error al registrar el atraso")}}),{mutateAsync:j}=I.useMutation({mutationFn:N,onSuccess:()=>{r("Atraso eliminado correctamente"),c==="kanban-general"&&(a.invalidateQueries({queryKey:["to_do_tasks"]}),a.invalidateQueries({queryKey:["working_tasks"]}),a.invalidateQueries({queryKey:["done_tasks"]})),c==="kanban-campania"&&a.invalidateQueries({queryKey:["tasksProject"]})},onError:()=>{o("Error al eliminar el atraso")}}),{mutateAsync:T}=I.useMutation({mutationFn:m,onSuccess:()=>{r("Atraso finalizado correctamente")},onError:()=>{o("Error al finalizar el atraso")}});return{atrasoReasons:l,isLoading:x,createAtraso:p,getAtrasoReasons:d,deleteAtraso:h,finalizarAtraso:y}},X=()=>{const{tasks_api:s}=L(),{user:e}=O(),{filters:n,path:a}=W(),r=I.useQueryClient(),{projectID:o}=tt(),{showSuccess:i,showError:c}=ut(),{finalizarAtraso:l}=$t({enabled:!1}),x=async({id:f})=>(await s.put(`/api/tareas/${f}`,{data:{estatus:1,responsable:e==null?void 0:e.id,updated_by:e==null?void 0:e.id}})).data,d=async({id:f})=>(await s.put(`/api/tareas/${f}`,{data:{estatus:0,responsable:e==null?void 0:e.id,updated_by:e==null?void 0:e.id}})).data,v=async({id:f,idAtraso:k})=>{const F=await s.post("/api/terminarTarea",{id_task:f,ended_at:new Date().toISOString(),id_user:e==null?void 0:e.id});return await l(k),F.data},N=async({id:f,repeats:k})=>(await s.put(`/api/tareas/${f}`,{data:{repeticiones_realizadas:k,updated_by:e==null?void 0:e.id}})).data,m=async({id:f,motiveId:k})=>{try{const F=await s.post("/api/pausarTarea",{taskId:f,userId:e==null?void 0:e.id,motivoId:k});return i("Tarea pausada correctamente"),F.data}catch(F){c("Error al pausar la tarea: "+F)}},p=async({id:f})=>{try{const k=await s.post("/api/reanudarTarea",{taskId:f});return i("Tarea reanudada correctamente"),k.data}catch(k){c("Error al reanudar la tarea: "+k)}},h=async({id:f,idNewResponsible:k,typeOfSelect:F})=>{let R={updated_by:e==null?void 0:e.id};return F==="responsible"&&(R={...R,responsable:k}),F==="team"&&(R={...R,responsable:null,equipo:k}),(await s.put(`/api/tareas/${f}`,{data:R})).data},y=async({id:f,data:k,user:F})=>{try{return(await s.put(`/api/tareas/${f}`,{data:{...k,updated_by:F==null?void 0:F.id}})).data}catch(R){console.error("Error updating the element:",R)}},b=async({id:f})=>{await S({id:f})},j=async({id:f,data:k,user:F})=>{await T({id:f,data:k,user:F})},{mutateAsync:T}=I.useMutation({mutationFn:y,onSuccess:()=>{i("Tarea actualizada correctamente");const f={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{a==="kanban-general"&&(r.invalidateQueries({queryKey:[f[a],n]}),r.invalidateQueries({queryKey:["done_tasks",n]}),r.invalidateQueries({queryKey:["working_tasks",n]})),a==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",n,o]}))}catch(k){console.error("Error invalidating queries:",k)}},onError:f=>{console.error("Failed to update the task.",f)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]})}}),{mutateAsync:S}=I.useMutation({mutationFn:x,onSuccess:()=>{const f={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{a==="kanban-general"&&(r.invalidateQueries({queryKey:[f[a],n]}),r.invalidateQueries({queryKey:["working_tasks",n]})),a==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",n,o]}))}catch(k){console.error("Error updating the element:",k)}},onError:f=>{console.error("Failed to update the task.",f)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:P}=I.useMutation({mutationFn:v,onSuccess:()=>{const f={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{r.setQueryData([f[a],n],k=>{console.log({oldData:k})}),a==="kanban-general"&&(r.invalidateQueries({queryKey:[f[a],n]}),r.invalidateQueries({queryKey:["done_tasks",n]}),r.invalidateQueries({queryKey:["working_tasks",n]})),a==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",n,o]}))}catch(k){console.error("Error invalidating queries:",k)}},onError:f=>{console.error("Failed to update the task.",f)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["done_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:A}=I.useMutation({mutationFn:N,onSuccess:()=>{const f={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{a==="kanban-general"&&(r.invalidateQueries({queryKey:[f[a],n]}),r.invalidateQueries({queryKey:["done_tasks",n]}),r.invalidateQueries({queryKey:["working_tasks",n]})),a==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",n,o]}))}catch(k){console.error("Error invalidating queries:",k)}},onError:f=>{console.error("Failed to update the task.",f)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["done_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:C}=I.useMutation({mutationFn:h,onSuccess:()=>{const f={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{a==="kanban-general"&&(r.invalidateQueries({queryKey:[f[a],n]}),r.invalidateQueries({queryKey:["done_tasks",n]}),r.invalidateQueries({queryKey:["working_tasks",n]})),a==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",n,o]}))}catch(k){console.error("Error invalidating queries:",k)}},onError:f=>{console.error("Failed to reassign the task.",f)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["done_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}}),{mutateAsync:M}=I.useMutation({mutationFn:d,onSuccess:()=>{const f={"kanban-general":"to_do_tasks","kanban-campania":"tasksProject"};try{a==="kanban-general"&&(r.invalidateQueries({queryKey:[f[a],n]}),r.invalidateQueries({queryKey:["working_tasks",n]})),a==="kanban-campania"&&(r.invalidateQueries({queryKey:["tasksProject"]}),r.invalidateQueries({queryKey:["tasksProject",n,o]}))}catch(k){console.error("Error updating the element:",k)}},onError:f=>{console.error("Failed to update the task.",f)},onMutate:async()=>{await r.cancelQueries({queryKey:["working_tasks"]}),await r.cancelQueries({queryKey:["to_do_tasks"]})}});return{updatingTask:j,updateTask:y,startTask:async({id:f})=>{await M({id:f})},startWorking:b,completeTask:async({id:f,idAtraso:k})=>{await P({id:f,idAtraso:k})},reasignResponsible:async({id:f,idNewResponsible:k,typeOfSelect:F})=>{await C({id:f,idNewResponsible:k,typeOfSelect:F})},updateUnitys:async({repeats:f,id:k})=>{await A({repeats:f,id:k})},pauseTask:async({id:f,motiveId:k})=>{console.log({taksId:f,motivoId:k,user:e==null?void 0:e.id})},postPauseTask:m,postReanudeTask:p}},de=({id:s,idAtraso:e})=>{const[n,a]=w.useState(!1),{completeTask:r}=X();return{checked:n,checkTask:()=>{a(!n),r({id:s,idAtraso:e})}}},Dt=({id:s,nameRequiredTask:e,statusRequiredTask:n,status:a,idAtraso:r})=>{const{checked:o,checkTask:i}=de({id:s,idAtraso:r});let c=Math.random().toString();const l=e!==""&&n===2;return t.jsxs(t.Fragment,{children:[a===2&&t.jsx("div",{className:"tw-bg-success-regular tw-rounded-full tw-flex tw-items-center tw-justify-center tw-mx-[2px] tw-transition-all",children:t.jsx(_.Icons,{icon:"circle_checked",color:"white",strokeWidth:4,size:"xs"})}),l||!e?a===1?t.jsx("label",{htmlFor:c,className:o?"tw-bg-success-regular tw-rounded-full tw-w-[20px] tw-h-[20px] tw-flex tw-items-center tw-justify-center tw-mx-[2px] tw-transition-all":"tw-transition-colors",children:t.jsx(_.Icons,{icon:o?"check_outline":"circle_checked",color:o?"white":g.texts.placeholder,strokeWidth:4,size:o?"xs":"s"})}):t.jsx(t.Fragment,{children:" "}):t.jsx(_.Tooltip,{dispatch:t.jsx("label",{className:"tw-cursor-help",children:t.jsx(_.Icons,{icon:"info_circle",color:g.warning.regular,strokeWidth:4})}),children:t.jsxs("div",{className:"tw-absolute tw-ml-[-2rem] tw-shadow-xl tw-shadow-black-300 tw-top-full tw-left-0 tw-mt-2 tw-z-10 tw-p-l tw-max-w-[400px] tw-w-fit tw-bg-warning-light tw-rounded-lg tw-border-l-[5px] tw-border-warning-regular tw-text-warning-dark tw-text-s tw-flex tw-flex-col tw-gap-m",children:[t.jsxs("p",{className:"tw-font-bold tw-w-[210px]",children:[" ","Requiere completar su tarea requerida:"," "]}),t.jsxs("p",{children:[" ",e," "]})]})}),t.jsx("input",{id:c,checked:o,onChange:i,type:"checkbox",className:"tw-hidden"})]})},jt=({trigger:s,user:e,showUser:n=!0})=>t.jsx(_.Tooltip,{dispatch:s,children:n&&t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2 tw-bg-bg-card tw-w-fit tw-h-fit tw-p-2 tw-rounded-lg tw-border-containers",children:[t.jsx(V,{imageUrl:e.image??"",alt:e.name}),t.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:e.name})]})});class ue{static toDomain(e){return{id:e.id,name:e.nombre,color:e.color}}}const xe=()=>{const{tasks_api:s}=L();return{teams:I.useQuery({queryKey:["teams","all"],queryFn:async()=>{const n=await s.get("/api/equipos");return Y(n.data).map(ue.toDomain)}})}};class pe{static toUsers(e){var n,a,r;return{id:e.id,name:e.nombre,image:(r=(a=(n=e.imagen)==null?void 0:n.formats)==null?void 0:a.thumbnail)==null?void 0:r.url,tasksUser:{email:e.tasksUser.email,id:e.tasksUser.id,nombre:e.tasksUser.nombre}}}}const me=async({tasks_api:s})=>{try{const e=await s.get("/api/getAllOBPusersMembers");return Y(e.data).map(pe.toUsers)}catch(e){throw console.log("Error al obtener los usuarios comerciales",e),`Error al obtener los usuarios comerciales: ${e}`}},ge=()=>{const{tasks_api:s}=L();return{users:I.useQuery({queryKey:["users"],queryFn:()=>me({tasks_api:s}),staleTime:1e3*60*60*24})}},xt=s=>new Intl.DateTimeFormat("es-MX",{month:"long"}).format(s);function he(s){const e=["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],n=new Date(s).getDay();return e[n]}const vt=s=>{let e=s||new Date,n=e.getDate(),a=xt(e.getMonth()).slice(0,3),r=e.getFullYear().toString().slice(-2),o=he(e).slice(0,3);return`${o.charAt(0).toUpperCase()+o.slice(1)} ${n} ${a.charAt(0).toUpperCase()+a.slice(1)} ${r}`},pt=(s,e)=>({...s,image:s.image?`${e}${s.image}`:""}),Rt=({users:s,onClick:e,responsible:n,role:a})=>{const{getOBPUrlApi:r}=L(),o=`button-assign-users-${Math.random().toString(36).substring(2,15)}`,{setElementPosition:i,position:c,clearPosition:l}=dt(),x=w.useRef(null),d="Project Manager",v=()=>n?null:s.length>3&&t.jsx(_.Tooltip,{dispatch:t.jsx("div",{className:"tw-w-[28px] tw-h-[28px] tw-rounded-full tw-bg-primary-regular tw-flex tw-items-center tw-justify-center tw-border-2 tw-border-white tw-ml-[-8px]",children:t.jsx("p",{className:"tw-text-s tw-font-bold tw-text-white ",children:`+${s.length-3}`})}),children:t.jsx("div",{className:"tw-bg-bg-card tw-w-fit tw-h-fit tw-p-2 tw-rounded-lg tw-border-containers",children:s==null?void 0:s.slice(3).map((h,y)=>t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2 ",children:[t.jsx(V,{imageUrl:h.image??"",alt:h.name},y),t.jsx("p",{className:"tw-text-s tw-font-bold tw-text-texts-subtext",children:h.name})]},y))})}),N=()=>{if(n){let h=s.find(y=>y.id===n);return t.jsx("div",{children:t.jsx(jt,{trigger:t.jsx(V,{imageUrl:h==null?void 0:h.image,alt:h==null?void 0:h.name},n),user:h,showUser:!(c!=null&&c.x)})})}return(s==null?void 0:s.length)>0&&s.slice(0,3).map((h,y)=>t.jsx("div",{className:`${y===0?"":"tw-ml-[-8px]"}`,children:t.jsx(jt,{trigger:t.jsx(V,{imageUrl:h.image,alt:h.name},y),user:h,showUser:!(c!=null&&c.x)})}))},m=({children:h})=>t.jsx("label",{ref:x,htmlFor:o,className:"tw-cursor-pointer tw-flex tw-items-center",children:h});if(s.length===0)return t.jsx(m,{children:t.jsx(_.Icons,{icon:"user",size:"xs",strokeWidth:3})});const p=()=>{var A;const[h,y]=w.useState(),[b,j]=w.useState("responsible"),{teams:T}=xe(),{users:S}=ge();w.useEffect(()=>{var C,M;x.current&&y(((c==null?void 0:c.x)??0)-(((M=(C=x.current)==null?void 0:C.getBoundingClientRect())==null?void 0:M.width)??0))},[x==null?void 0:x.current,c==null?void 0:c.x]);const P=()=>{const C=[{id:"responsible",label:"Responsable"}];return t.jsx("div",{className:"tw-w-full tw-flex tw-justify-center tw-gap-l tw-text-texts-placeholder tw-font-bold",children:C.map((M,Q)=>t.jsx("button",{className:`tw-w-full tw-text-sm tw-border-texts-placeholder tw-text-center ${b===M.id?"tw-text-primary-pastel":""} ${Q===C.length-1?"tw-border-r-0":" tw-border-r-2"}`,onClick:()=>j(M.id),children:M.label}))})};return a!==d?null:(c==null?void 0:c.x)&&et.createPortal(t.jsx("div",{"data-portal-host":!0,className:`absolute tw-w-[300px] tw-h-fit tw-p-[1rem] ${h?"tw-block":"tw-hidden"}`,style:{top:`${c==null?void 0:c.y}px`,left:`${h}px`,zIndex:1},children:t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-m tw-bg-bg-card tw-border-cards tw-rounded-lg tw-p-2 tw-max-h-[200px] tw-overflow-y-hidden",style:{boxShadow:"0px 2px 16px 0px rgba(0, 0, 0, 0.25)"},children:[t.jsx(P,{}),t.jsx(Ft,{options:b==="team"?T.data.map(C=>({id:C.id,name:C.name,image:""})):(A=S.data)==null?void 0:A.map(C=>pt(C,r())),onselect:C=>{var M;l(),e&&e((M=C.tasksUser)==null?void 0:M.id,b)}})]})}),document.body)};return t.jsxs(t.Fragment,{children:[t.jsxs(m,{children:[N(),v()]}),t.jsx("button",{className:"tw-hidden",id:o,onClick:()=>i(x)}),t.jsx(p,{})]})},zt=({priority:s,id:e,withLabel:n=!1})=>{var N,m,p,h,y;const{updatingTask:a}=X(),r=Math.random().toString(36),[o,i]=w.useState(null),{user:c}=O(),[l,x]=w.useState(s);w.useEffect(()=>{x(s)},[s]);const d={0:{title:"Normal",color:g.primary.regular},1:{title:"Baja",color:g.success.regular},2:{title:"Media",color:g.warning.regular},3:{title:"Alta",color:g.danger.regular}},v=()=>{if(!o)return null;const b=({priorityTask:j,text:T})=>{var S,P;return t.jsxs("button",{onClick:async()=>{i(null),await a({id:e,data:{prioridad:j},user:c==null?void 0:c.id}),x(j)},className:"tw-flex tw-gap-m tw-items-center tw-px-l tw-py-s hover:tw-bg-primary-light",children:[t.jsx(_.Icons,{icon:"flag",size:"xs",strokeWidth:4,color:(S=d[j??0])==null?void 0:S.color}),t.jsx("p",{className:"tw-text-sm",style:{color:(P=d[j??0])==null?void 0:P.color},children:T})]})};return et.createPortal(t.jsx("div",{onBlur:()=>{i(null)},id:`${r}-options`,style:{top:`${o.y+5}px`,left:`${o.x+5}px`,zIndex:50},className:`tw-absolute tw-h-fit tw-p-m tw-flex tw-flex-col tw-gap-2 tw-bg-bg-card tw-rounded-xl tw-shadow-lg
2
2
  tw-w-max`,"data-portal-host":!0,children:Object.values(d).map((j,T)=>t.jsx(b,{priorityTask:T,text:j.title},T))}),document.body)};return t.jsxs("div",{className:"tw-relative tw-h-[22px]",children:[t.jsxs("label",{onBlur:()=>{i(null)},htmlFor:r,className:"tw-flex tw-items-center tw-gap-2 tw-cursor-pointer active:tw-opacity-50",children:[t.jsx(_.Tooltip,{dispatch:t.jsx(_.Icons,{icon:"flag",size:"xs",strokeWidth:4,color:(N=d[l??0])==null?void 0:N.color}),children:t.jsx("p",{className:"tw-text-sm tw-font-regular tw-p-5 tw-bg-bg-card tw-rounded-lg",style:{color:(m=d[l??0])==null?void 0:m.color},children:`Prioridad: ${(p=d[l??0])==null?void 0:p.title}`})}),n&&t.jsx("span",{style:{color:(h=d[l??0])==null?void 0:h.color},className:"tw-text-lg tw-font-normal",children:((y=d[l??0])==null?void 0:y.title)??"Sin prioridad"})]}),t.jsx("button",{id:r,onClick:b=>{i(o?null:{x:b.clientX,y:b.clientY})},className:"tw-hidden"}),t.jsx(v,{})]})};function fe({items:s}){var a;const[e,n]=w.useState(1);return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"tw-flex tw-flex-row tw-mb-2 tw-border-b tw-border-neutral-100 tw-bg-white tw-mt-4",children:s.map((r,o)=>t.jsx("div",{className:`tw-border-r tw-border-neutral-100 tw-pr-3 ${o!==0?"tw-px-3":""}`,children:t.jsx(K.Button,{variant:"ghost",onClick:()=>n(r.id),className:`tw-text-xl tw-font-semibold rounded-none tw-py-1 tw-h-12 ${e===r.id?"tw-text-primary-regular tw-border-primary tw-border-b-2":"tw-text-neutral-400 tw-border-b-0"}`,children:r.label},r.id)},r.id))}),t.jsx("div",{className:"tw-pt-4 tw-flex-1 tw-overflow-y-auto tw-bg-white",children:(a=s.find(r=>r.id===e))==null?void 0:a.component})]})}function be({comment:s}){var r,o,i,c,l;const{getImageOBP:e}=L(),n=(c=(i=(o=(r=s==null?void 0:s.autor)==null?void 0:r.imagen)==null?void 0:o.formats)==null?void 0:i.thumbnail)==null?void 0:c.url;function a(x){const d=lt.parseISO(x);return lt.formatDistanceToNow(d,{locale:wt.es,addSuffix:!0})}return t.jsx("div",{children:t.jsxs("div",{className:"tw-flex tw-flex-row tw-gap-3 tw-items-start",children:[t.jsx(V,{size:"xxl",imageUrl:n?e(n):"",alt:"@shadcn"}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-gap-1",children:[t.jsxs("div",{className:"tw-flex tw-flex-row tw-gap-2",children:[t.jsx("p",{className:"tw-text-xl tw-text-neutral-900 tw-font-medium",children:(l=s==null?void 0:s.autor)==null?void 0:l.nombre}),t.jsx("span",{className:"tw-text-base tw-text-neutral-600 tw-font-normal tw-mt-[2px]",children:a(s==null?void 0:s.createdAt)})]}),t.jsx("p",{className:"tw-text-xl tw-text-neutral-600 tw-font-normal",children:s==null?void 0:s.comentario})]})]})})}function ye({currentUser:s,data:e,taskId:n,onNewComment:a}){var m,p,h;const{tasks_api:r,getImageOBP:o}=L(),{register:i,handleSubmit:c,reset:l}=ct.useForm(),[x,d]=w.useState([]),v=(h=(p=(m=s==null?void 0:s.imagen)==null?void 0:m.formats)==null?void 0:p.thumbnail)==null?void 0:h.url;w.useEffect(()=>{if(e!=null&&e.comentarios){const y=[...e.comentarios].sort((b,j)=>new Date(j.createdAt).getTime()-new Date(b.createdAt).getTime());d(y)}},[e]);const N=async y=>{try{const b={autor:{id:s==null?void 0:s.id,email:s==null?void 0:s.email,nombre:s==null?void 0:s.nombre,imagen:s==null?void 0:s.imagen},comentario:y==null?void 0:y.comment,createdAt:new Date().toISOString()};await r.post("/api/comentarios",{data:{autor:s==null?void 0:s.id,comentario:y.comment,tarea:n}}),a(!0),d(j=>[b,...j]),l()}catch(b){console.error("Error al agregar comentario:",b)}};return t.jsxs("div",{className:"tw-flex tw-flex-col tw-h-full tw-gap-4",children:[t.jsxs("form",{onSubmit:c(N),className:"tw-flex tw-flex-row tw-items-center tw-gap-3",children:[t.jsx(V,{size:"xxl",imageUrl:v?o(v):"",alt:"@shadcn"}),t.jsx(K.Input,{...i("comment",{required:!0}),autoComplete:"off",placeholder:"Escribe un comentario",className:"tw-w-full tw-bg-white tw-border tw-border-neutral-200 tw-h-[3.5rem] tw-text-xl"})]}),x&&x.map((y,b)=>t.jsx(be,{comment:y},b))]})}function je({data:s}){const e={0:{color:"tw-bg-gray-400",label:"Sin estado"},1:{color:"tw-bg-primary-regular",label:"En curso"},2:{color:"tw-bg-success-regular",label:"Finalizada"},3:{color:"tw-bg-success-regular",label:"Finalizada"}},n=a=>a?lt.format(new Date(a),"d MMM",{locale:wt.es}):"";return t.jsxs("div",{children:[t.jsxs("div",{className:"tw-flex tw-flex-row tw-items-center tw-gap-4",children:[t.jsx(K.Label,{className:"tw-text-2xl tw-font-medium tw-text-neutral-900",children:"Tareas dependientes"}),t.jsx("span",{className:"tw-text-lg tw-font-normal tw-text-neutral-600 tw-bg-[#E1EBF9] tw-w-10 tw-h-10 tw-rounded-full tw-flex tw-items-center tw-justify-center tw-text-primary",children:s==null?void 0:s.length})]}),t.jsx("div",{className:"tw-flex tw-flex-col tw-gap-2 tw-border tw-border-neutral-200 tw-rounded-lg tw-mt-3",children:s==null?void 0:s.map(a=>{var r,o,i,c,l;return t.jsxs("div",{className:"tw-flex tw-flex-row tw-w-full tw-items-center tw-justify-between tw-gap-s tw-border-b tw-border-neutral-200 tw-py-1 tw-px-2",children:[t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-2",children:[t.jsx(V,{imageUrl:(c=(i=(o=(r=a.responsable)==null?void 0:r.image)==null?void 0:o.formats)==null?void 0:i.thumbnail)==null?void 0:c.url}),t.jsx("p",{className:"tw-text-sm tw-font-normal tw-w-[400px] tw-text-nowrap tw-text-ellipsis tw-overflow-hidden",children:a==null?void 0:a.texto_corto})]}),t.jsxs("div",{className:"tw-flex tw-items-center tw-gap-1",children:[t.jsx("p",{className:"tw-text-sm tw-font-normal",children:n(a==null?void 0:a.createdAt)}),t.jsx("div",{className:`tw-w-4 tw-h-4 tw-bg-gray-400 tw-block tw-rounded-full ${((l=e[a==null?void 0:a.estatus])==null?void 0:l.color)??"tw-bg-gray-400"}`})]})]},a.id)})})]})}function ve({id:s,texto_largo:e,user_id:n}){const[a,r]=w.useState(e),{updatingTask:o}=X(),i=async()=>{await o({id:s,data:{texto_largo:a},user:n})};return w.useEffect(()=>{r(e)},[e]),t.jsxs("div",{className:"tw-w-full tw-flex tw-flex-col tw-gap-3 tw-mt-8",children:[t.jsx("h6",{className:"tw-text-neutral-900 tw-font-semibold tw-text-2xl",children:"Descripción"}),t.jsx(K.Input,{value:a,onChange:c=>r(c.target.value),onBlur:i,autoComplete:"off",placeholder:"Agregar descripción",className:"tw-w-full tw-bg-white tw-border tw-border-neutral-200 tw-h-[3.5rem] tw-text-xl"})]})}function Kt({isOpen:s,setIsOpen:e,taskId:n}){var b,j,T,S,P,A,C,M,Q,U;const[a,r]=w.useState(null),[o,i]=w.useState(!1),[c,l]=w.useState(!1),[x,d]=w.useState(null),v=(S=(T=(j=(b=a==null?void 0:a.responsable)==null?void 0:b.imagen)==null?void 0:j.formats)==null?void 0:T.thumbnail)==null?void 0:S.url,{tasks_api:N,getImageOBP:m}=L(),{user:p}=O();w.useEffect(()=>{if(s&&n||o){const u=async()=>{const $=await N.get(`/api/detalleTarea/${n}`);r($==null?void 0:$.data)},E=async()=>{var k,F;const $=await N.get(`/api/users/${p.id}`),f=await N.post("/api/obtenerUsuarioOBP/",{emailList:[(k=$==null?void 0:$.data)==null?void 0:k.email]});d((F=f==null?void 0:f.data)==null?void 0:F.data[0])};u(),E()}},[s,n,o]);const h=u=>u?lt.format(u,"d MMM yyyy, h:mmaaa",{locale:wt.es}):"Fecha no disponible",y=[{id:1,label:"Todo",component:t.jsx(ye,{taskId:n,currentUser:x,data:a,onNewComment:i})},{id:2,label:"Dependencias",component:t.jsx(je,{data:a==null?void 0:a.ids_t_dependientes})}];return s&&et.createPortal(t.jsxs(t.Fragment,{children:[t.jsx("div",{className:`tw-fixed tw-inset-0 tw-bg-transparent tw-bg-opacity-50 tw-flex tw-justify-center tw-items-center tw-z-20 ${s?"tw-pointer-events-auto tw-block":"tw-pointer-events-none tw-hidden"}`,onClick:()=>e(!1)}),t.jsx("section",{className:`tw-fixed tw-top-0 tw-bottom-0 tw-bg-white tw-bg-opacity-50 tw-flex tw-justify-center tw-items-center tw-w-[55rem] tw-h-screen tw-z-50 tw-overflow-hidden tw-transition-all tw-ease-in-out tw-duration-500 tw-shadow-2xl ${s?"tw-right-0 tw-pointer-events-auto tw-block":"tw-right-[-100%] tw-pointer-events-none tw-hidden"}`,children:t.jsxs("div",{className:"tw-flex tw-w-full tw-h-full tw-flex-col tw-overflow-y-scroll tw-bg-white tw-border-none tw-shadow-xl tw-px-6 tw-py-10",children:[t.jsxs("div",{className:"tw-w-full tw-flex tw-items-center tw-flex-row tw-justify-between tw-pb-4 tw-gap-10 tw-border-none",children:[t.jsxs("div",{className:"tw-flex tw-flex-row tw-items-start tw-gap-2 tw-relative",children:[((P=a==null?void 0:a.id_t_requerida)==null?void 0:P.id)&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"tw-cursor-help",onMouseOver:()=>l(!0),onMouseLeave:()=>l(!1),children:t.jsx(_.Icons,{icon:"info_circle",color:g.warning.regular,strokeWidth:4})}),c&&t.jsxs("div",{style:{top:"25px"},className:"tw-p-l tw-max-w-[400px] tw-absolute tw-w-fit tw-bg-warning-light tw-rounded-lg tw-border-l-[5px] tw-border-warning-regular tw-text-warning-dark tw-text-xs tw-flex tw-flex-col tw-gap-m",children:[t.jsx("p",{className:"tw-font-bold",children:"Requiere completar su tarea requerida:"}),t.jsx("p",{className:"tw-text-2xl tw-text-neutral-600 tw-font-normal",children:(A=a==null?void 0:a.id_t_requerida)==null?void 0:A.texto_corto})]})]}),t.jsx("div",{className:"tw-flex tw-flex-row tw-items-center tw-gap-2",children:t.jsxs("h3",{className:"tw-text-3xl tw-font-semibold tw-text-neutral-900",children:[a==null?void 0:a.texto_corto,(a==null?void 0:a.atraso)&&t.jsx(_.TooltipV2,{content:(C=a==null?void 0:a.atraso)==null?void 0:C.motivo,position:"bottom",children:t.jsx("button",{className:"tw-inline-block tw-align-middle tw-ml-2 tw-h-fit",children:t.jsx(_.Icons,{icon:"exclamation_triangle",color:g.warning.dark,style:{width:"20px",height:"20px"}})})})]})})]}),t.jsx(K.Button,{variant:"shadow",size:"sm",onClick:()=>e(!1),className:"tw-bg-neutral-100 tw-w-12 tw-h-12",children:t.jsx(_.Icons,{icon:"x_outline",size:"xs",strokeWidth:4,color:"#000"})})]}),t.jsx("div",{className:"tw-w-full tw-flex tw-flex-row tw-justify-between tw-mt-6",children:t.jsxs("span",{className:"tw-text-black-black_light tw-font-medium tw-text-xl",children:[a==null?void 0:a.campania," / ",a==null?void 0:a.nombre_medio]})}),t.jsx(ve,{id:n,texto_largo:a==null?void 0:a.texto_largo,user_id:p.id}),t.jsx(K.Accordion,{type:"single",collapsible:!0,defaultValue:"item-1",className:"tw-w-full tw-flex tw-flex-col tw-border tw-border-neutral-200 tw-rounded-xl tw-mt-6",children:t.jsxs(K.AccordionItem,{value:"item-1",className:"tw-border-none",children:[t.jsx(K.AccordionTrigger,{className:"tw-text-neutral-900 tw-font-medium tw-text-2xl tw-w-full tw-flex tw-flex-row tw-border-b tw-border-neutral-200 tw-p-4",children:"Detalles"}),t.jsx(K.AccordionContent,{className:"tw-border-none",children:t.jsxs("div",{className:"tw-w-full tw-grid tw-grid-cols-3 tw-gap-xy-details tw-p-4",children:[t.jsxs("div",{className:"tw-flex tw-flex-col tw-w-auto tw-gap-2",children:[t.jsx("span",{className:"tw-font-sans tw-font-semibold tw-text-[1.4rem] tw-leading-[100%] tw-tracking-normal tw-bg-black",children:"Responsable"}),(M=a==null?void 0:a.responsable)!=null&&M.nombre?t.jsxs("div",{className:"tw-flex tw-flex-row tw-gap-2 tw-items-center",children:[t.jsx(V,{size:"xxl",imageUrl:v?m(v):"",alt:"@shadcn"}),t.jsx("span",{className:"tw-text-lg tw-text-neutral-600 tw-font-normal",children:(Q=a==null?void 0:a.responsable)==null?void 0:Q.nombre})]}):t.jsx("span",{className:"tw-text-lg tw-text-neutral-600 tw-font-normal",children:"Sin responsable"})]}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-w-auto tw-gap-2",children:[t.jsx("span",{className:"tw-font-sans tw-font-semibold tw-text-[1.4rem] tw-leading-[100%] tw-tracking-normal tw-bg-black",children:"Equipo asignado"}),t.jsx("div",{className:"tw-flex tw-flex-row tw-gap-2",children:t.jsx("span",{className:"tw-text-lg tw-text-neutral-600 tw-font-normal",children:((U=a==null?void 0:a.equipo)==null?void 0:U.nombre)??"Sin equipo"})})]}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-w-auto tw-gap-2",children:[t.jsx("span",{className:"tw-text-xl tw-text-neutral-900 tw-font-medium",children:"Prioridad"}),t.jsx(zt,{priority:parseInt(a==null?void 0:a.prioridad)||0,id:n,withLabel:!0})]}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-w-auto tw-gap-2",children:[t.jsx("span",{className:"tw-font-sans tw-font-semibold tw-text-[1.4rem] tw-leading-[100%] tw-tracking-normal tw-bg-black",children:"Lista"}),t.jsx("div",{className:"tw-flex tw-flex-row tw-gap-2",children:t.jsx("span",{className:"tw-text-lg tw-text-neutral-600 tw-font-normal",children:(a==null?void 0:a.lista)??"Sin lista"})})]}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-w-auto tw-gap-2",children:[t.jsx("span",{className:"tw-font-sans tw-font-semibold tw-text-[1.4rem] tw-leading-[100%] tw-tracking-normal tw-bg-black",children:"Fecha estimada de inicio"}),t.jsx("p",{className:"tw-text-lg tw-text-neutral-600 tw-font-normal",children:h(a==null?void 0:a.f_inicio_estimada)})]}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-w-auto tw-gap-2",children:[t.jsx("span",{className:"tw-font-sans tw-font-semibold tw-text-[1.4rem] tw-leading-[100%] tw-tracking-normal tw-bg-black",children:"Fecha estimada de fin"}),t.jsx("p",{className:"tw-text-lg tw-text-neutral-600 tw-font-normal",children:h(a==null?void 0:a.f_fin_estimada)})]}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-w-auto tw-gap-2",children:[t.jsx("span",{className:"tw-font-sans tw-font-semibold tw-text-[1.4rem] tw-leading-[100%] tw-tracking-normal tw-bg-black",children:"Fecha de fin"}),t.jsx("p",{className:"tw-text-lg tw-text-neutral-600 tw-font-normal",children:h(a==null?void 0:a.ffin)})]}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-w-auto tw-gap-2",children:[t.jsx("span",{className:"tw-font-sans tw-font-semibold tw-text-[1.4rem] tw-leading-[100%] tw-tracking-normal tw-bg-black",children:"Creado"}),t.jsx("p",{className:"tw-text-lg tw-text-neutral-600 tw-font-normal",children:h(a==null?void 0:a.createdAt)})]}),t.jsxs("div",{className:"tw-flex tw-flex-col tw-w-auto tw-gap-2",children:[t.jsx("span",{className:"tw-font-sans tw-font-semibold tw-text-[1.4rem] tw-leading-[100%] tw-tracking-normal tw-bg-black",children:"Última modificación"}),t.jsx("p",{className:"tw-text-lg tw-text-neutral-600 tw-font-normal",children:h(a==null?void 0:a.updatedAt)})]})]})})]})}),t.jsx(fe,{items:y})]})})]}),document.body)}const Ne=({children:s,actionsRef:e,newPosition:n,className:a})=>{const[r,o]=w.useState(),[i,c]=w.useState(!1);return w.useEffect(()=>{var l,x;if(e.current&&n){const d=((n==null?void 0:n.x)??0)-(((x=(l=e.current)==null?void 0:l.getBoundingClientRect())==null?void 0:x.width)??0);o(d),requestAnimationFrame(()=>{c(!0)})}return()=>{c(!1),o(void 0)}},[e==null?void 0:e.current,n==null?void 0:n.x]),!n||r===void 0?null:et.createPortal(t.jsx("div",{"data-portal-host":!0,className:`
3
3
  tw-absolute tw-w-fit tw-h-fit
4
4
  tw-transition-all tw-duration-200 tw-ease-in-out