PageSourceSearch

https://xmacna.ai/_nuxt/BrzWbhUN.js

js xmacna.ai collected 2026-10-05 13:24:25 UTC 9,045 bytes, 32 lines download raw bytes

1import{_ as G}from"./V1CGmUic.js";import{_ as J}from"./osqaVy29.js";import{a as Y,b as i,o,e as s,f as g,n as w,c as b,t as _,d as z,F as f,h as k,A as n,s as ee,k as Z,B as $,g as R,z as c,Z as te,W as se,Q as oe,$ as ne}from"./Bcc8-a-q.js";import O from"./9pjYCGkJ.js";import{_ as ie}from"./BnYVzLkN.js";import{_ as q}from"./GXeVycEb.js";import{_ as ae}from"./Bsr9gsXp.js";import{_ as re}from"./DWG-3fiB.js";import{_ as le}from"./DP_cIybH.js";import{_ as ce}from"./DwLlVV9b.js";import{_ as de}from"./CkZIPPbP.js";import{_ as me}from"./PZOoVSBw.js";import{g as E}from"./B0ptFxXJ.js";import{u as ue}from"./_bZiThFm.js";import{u as pe}from"./CUHCQ4-k.js";import"./CdE3OqS9.js";import"./ClL-Wh03.js";import"./DeukoLxz.js";import"./C9Q6WIAX.js";import"./CfUektVg.js";const _e={props:{name:{type:String,default:""},small:{type:Boolean,default:!1},icon:{type:String,default:""},isCurrent:{type:Boolean,default:!1},isComplete:{type:Boolean,default:!1},status:{type:String,default:""}}},ge={class:"relative flex items-center justify-center w-24 md:w-full"},he={class:"flex flex-col items-center px-1 py-3 text-sm font-medium md:px-2 md:py-4"},fe={class:"whitespace-nowrap"},ye={key:0,class:"mt-1 text-xs font-medium text-center text-gray-500 dark:text-gray-300"};function xe(T,m,t,h,r,e){const d=J;return o(),i("div",ge,[s("div",he,[s("span",{class:w([{"bg-primary":t.isComplete,"border-primary border-dashed border-2":t.isCurrent,"border-2 border-dashed dark:border-gray-700":!t.isCurrent&&!t.isComplete},"flex items-center justify-center flex-shrink-0 w-10 h-10 rounded-button"])},[t.isComplete?(o(),b(d,{key:0,name:"heroicons:check",class:"w-8 h-8 text-white fill-current",solid:""})):t.icon?(o(),b(d,{key:1,name:t.icon,class:w(["w-6 h-6 fill-current",{"text-primary":t.isCurrent,"text-gray-500 ":!t.isCurrent}]),outline:""},null,8,["name","class"])):g("",!0)],2),s("div",{class:w(["mt-1 text-xs font-medium text-center md:text-sm md:mt-2",{"line-through text-gray-900 dark:text-white":t.isComplete,"text-primary":t.isCurrent,"text-gray-500 dark:text-gray-300":!t.isCurrent&&!t.isComplete}])},[s("span",fe,_(t.name),1)],2),t.status?(o(),i("div",ye,_(t.status),1)):g("",!0)])])}const ve=Y(_e,[["render",xe]]),we={"aria-label":"Progress"},be={class:"flex items-start w-full overflow-x-auto"},Ce={key:0,class:"mt-6 md:mt-8"},ke=z({__name:"ProjectMilestones",props:{steps:{}},setup(T){return(m,t)=>{const h=ve,r=O;return o(),i("nav",we,[s("ol",be,[(o(!0),i(f,null,k(m.steps,(e,d)=>(o(),i("li",{key:d,class:"flex flex-1"},[n(h,{name:e.name,icon:e.icon,"is-complete":e.isComplete,"is-current":e.isCurrent,status:e.status,date:e.date},null,8,["name","icon","is-complete","is-current","status","date"]),d!==m.steps.length-1?(o(),i("div",Ce,[n(r,{name:"i-heroicons-arrow-long-right",class:w([e.isComplete?"text-primary-700 dark:text-primary":"text-gray-700 dark:text-gray-500","w-8 h-8 fill-current"]),solid:""},null,8,["class"])])):g("",!0)]))),128))])])}}}),Te={class:"relative"},$e={class:"flow-root mt-6 space-y-4"},ze={role:"list",class:"mt-4"},Pe={class:"relative pb-8"},je={key:0,class:"absolute top-4 left-4 -ml-px h-full w-0.5 bg-gray-300 dark:bg-gray-700","aria-hidden":"true"},Ae={class:"relative flex space-x-3"},Be={class:w(["h-8 w-8 rounded-full flex items-center justify-center bg-gray-500 "])},De={class:"flex min-w-0 flex-1 justify-between space-x-4 pt-1.5"},Ue={class:"text-sm text-right text-gray-500 whitespace-nowrap"},Se=z({__name:"ProjectActivity",props:{item:{type:String,default:null},collection:{type:String,default:""}},setup(T){const m=ee([{type:"milestone",item:{id:"1",name:"Milestone 1"},action:"completed",timestamp:"2023-09-02T00:00:00.000Z"},{type:"update",item:{id:"1",message:`<p>I am pleased to announce the successful completion of Sprint 3. Kudos to all for the hard work and dedication that was poured into achieving our goals. Below is a brief update on the key accomplishments, upcoming priorities, and identified challenges:</p>
2<h3>Key Accomplishments:</h3>
3<ol>
4<li>
5<p><strong>Feature Development</strong>:</p>
6<ul>
7<li>Completed the User Authentication module which now supports OAuth 2.0.</li>
8<li>Implemented real-time notifications, enhancing user engagement.</li>
9<li>Optimized the website's load time by 30%, ensuring a smoother user experience.</li>
10</ul>
11</li>
12<li>
13<p><strong>Bug Fixes</strong>:</p>
14<ul>
15<li>Addressed 25 reported bugs, with a significant one being the payment gateway error.</li>
16</ul>
17</li>
18<li>
19<p><strong>Testing and Quality Assurance</strong>:</p>
20<ul>
21<li>Achieved 95% code coverage with automated testing.</li>
22<li>Conducted usability testing with a selected user group, feedback has been overwhelmingly positive.</li>
23</ul>
24</li>
25<li>
26<p><strong>Collaborations</strong>:</p>
27<ul>
28<li>Coordinated with the Design team to finalize the UI/UX for the new dashboard.</li>
29<li>Established a weekly sync with the Marketing team to align on product messaging.</li>
30</ul>
31</li>
32</ol>`},action:"update",timestamp:"2023-09-01T00:00:00.000Z"},{type:"milestone",item:{id:"1",name:"Milestone 1"},action:"started",timestamp:"2023-09-01T00:00:00.000Z"}]),t=Z(()=>m.value.reduce((r,e)=>{const d=new Date(e.timestamp).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}),y=r.find(x=>x.date===d);return y?y.activity.push(e):r.push({date:d,activity:[e]}),r},[]).sort((r,e)=>new Date(e.date).getTime()-new Date(r.date).getTime()));
32return(h,r)=>{const e=de,d=me,y=O,x=q;return o(),i("div",Te,[s("div",$e,[(o(!0),i(f,null,k(c(t),(v,u)=>(o(),i("div",{key:`date-${u}`},[n(e,null,{default:$(()=>[R(_(v.date),1)]),_:2},1024),n(d),s("ul",ze,[(o(!0),i(f,null,k(v.activity,(l,p)=>(o(),i("li",{key:p},[s("div",Pe,[p!==v.activity.length-1?(o(),i("span",je)):g("",!0),s("div",Ae,[s("div",null,[s("span",Be,[n(y,{name:l.type==="milestone"?"heroicons:flag":l.type==="update"?"heroicons:document-text":"heroicons:document",class:"w-5 h-5 text-white","aria-hidden":"true"},null,8,["name"])])]),s("div",De,[s("div",null,[l.type==="update"?(o(),i(f,{key:0},[r[0]||(r[0]=s("div",{class:"font-bold"},"User posted a project update",-1)),l.item&&l.item.message?(o(),b(x,{key:0,content:l.item.message,size:"sm"},null,8,["content"])):g("",!0)],64)):l.type==="milestone"?(o(),i(f,{key:1},[R(" Milestone - "+_(l.item.name)+" - "+_(l.action),1)],64)):g("",!0)]),s("div",Ue,_(("getRelativeTime"in h?h.getRelativeTime:c(E))(l.timestamp)),1)])])])]))),128))])]))),128))])])}}}),Me={id:"overview",class:"grid lg:grid-cols-2"},Ve={class:"px-4 py-3 mt-8 space-y-4"},Fe={class:"grid divide-y-2 md:divide-y-0 md:divide-x-2 md:grid-cols-2 dark:divide-gray-700"},Ie={class:"p-4 space-y-4"},Ne={class:"p-4 space-y-4"},Le=["src"],Re={class:"text-sm font-bold"},Ze={class:"px-4 py-3 mt-12 lg:col-span-2"},ct=z({__name:"index",async setup(T){let m,t;const{path:h,params:r}=te(),{data:e,pending:d,error:y}=([m,t]=se(()=>oe(`/portal/projects/${r.id}-index`,()=>ue(ne("os_projects",r.id,{fields:["*",{organization:["id","name","logo"],owner:["id","first_name","last_name","email","avatar"],contacts:["*"],tasks:["id","name","type","status","due_date","date_completed"],updates:["id","message","user_created","date_created","date_updated","user_updated"]}],deep:{tasks:{_filter:{_or:[{is_visible_to_client:{_eq:!0}},{type:{_eq:"milestone"}}]}}}})))),m=await m,t(),m),{fileUrl:x}=pe(),v=Z(()=>{var p;const u=c(e);return!u||!(u!=null&&u.tasks)?[]:((p=u==null?void 0:u.tasks)==null?void 0:p.filter(a=>typeof a!="string"&&a.type==="milestone").sort((a,C)=>new Date(a.due_date).getTime()-new Date(C.due_date).getTime())).map(a=>({isComplete:a.status==="completed",isCurrent:a.status!=="completed"&&a.status!=="pending",icon:"heroicons:calendar",name:a.name,status:a.status==="completed"?a.date_completed&&E(a.date_completed):"",date:a.due_date}))});return(u,l)=>{var j,A;const p=G,a=ke,C=ie,K=q,Q=ae,P=re,H=le,W=ce,X=Se;return o(),i("div",Me,[n(C,{class:"mt-6 space-y-4 lg:col-span-2"},{default:$(()=>[n(p,{content:"Milestones",size:"xs"}),n(a,{steps:c(v)},null,8,["steps"])]),_:1}),s("section",Ve,[n(p,{content:"Description",size:"xs"}),(j=c(e))!=null&&j.description?(o(),b(K,{key:0,content:(A=c(e))==null?void 0:A.description},null,8,["content"])):g("",!0)]),n(C,{class:"mt-8"},{default:$(()=>{var B,D,U,S,M,V,F,I;return[n(p,{content:"Team",size:"xs"}),s("div",Fe,[s("div",Ie,[n(Q,{class:"h-6"}),l[0]||(l[0]=s("p",{class:"text-sm font-bold"},_("Company Name"),-1)),n(P,{label:"Project Owner"}),n(H,{author:(B=c(e))==null?void 0:B.owner,size:"sm"},null,8,["author"])]),s("div",Ne,[(U=(D=c(e))==null?void 0:D.organization)!=null&&U.logo?(o(),i("img",{key:0,src:c(x)((M=(S=c(e))==null?void 0:S.organization)==null?void 0:M.logo),class:"h-6"},null,8,Le)):g("",!0),s("p",Re,_((F=(V=c(e))==null?void 0:V.organization)==null?void 0:F.name),1),n(P,{label:"Contacts"}),(o(!0),i(f,null,k((I=c(e))==null?void 0:I.contacts,N=>{var L;return o(),b(W,{key:(L=N.contacts_id)==null?void 0:L.id,user:N.contacts_id,size:"sm"},null,8,["user"])}),128))])])]}),_:1}),s("div",Ze,[n(p,{content:"Updates",size:"xs"}),n(X)])])}}});export{ct as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.