1import{r as y,w as Y,p as Z,K as p,L as _,S as $,Q as M,c as k,l as rt,Z as l,H as W,Y as X,G as S,M as x,z as nt,T as N,u as U,a0 as lt,N as V,O as B,R as Q,aC as ot,aD as dt}from"./vue-vendor-CyH4x1-E.js";import{P as ut}from"./PageWrapper-XTAzDjCc.js";import{L as ct,A as pt,a as ft}from"./AiPromptSuggestions-B0x4fLp_.js";import{C as mt}from"./ClickHint-BsJ6LMVq.js";import{T as _t}from"./Tooltip-CfCnJnFT.js";import{L as ht}from"./LazySelect-DHpw0XM8.js";import{T as vt}from"./TrendCell-CIAcM9o2.js";import{b as tt,g as yt,c as gt,d as bt}from"./format-utils-DOcDBbtO.js";import{_ as G,n as kt,L as St,o as $t,C as P}from"./main-CMIpD3jd.js";import{u as Ct,d as wt}from"./metric-service-IF4keZbE.js";import{u as Lt}from"./use-metric-page-filters-B47jyVaA.js";import{u as Mt}from"./use-metric-metadata-ABztC6dh.js";import{f as Tt}from"./d3-chart-utils-VcBcCQC0.js";import{a as j}from"./filters-utils-C6owUqWb.js";import"./Header-CR2Demvq.js";import"./use-persist-query-V3RV2H3J.js";import"./teams-utils-DTHifhP0.js";import"./DataSettings-Da5RUkpu.js";import"./ui-vendor-Kc4f6fey.js";import"./utils-vendor-BqjKlC8F.js";import"./DateRangeCalendar-wy5wbS1c.js";import"./period-utils-B7g8wIei.js";import"./time-utils-sTSci0xm.js";import"./filter-storage-2K9GaPdC.js";import"./skills-service-CUfqMG_h.js";import"./tanstack-vendor-BkJgoSrC.js";import"./WaydevLoader-gCHJE3X1.js";import"./ui-components-BvRCf8IE.js";import"./form-vendor-CKjjkstR.js";import"./auth-vendor-BCsRLuQJ.js";import"./use-url-query-B9EStKLM.js";import"./filter-options-store-COScA8op.js";import"./teams-service-HVyEToxR.js";import"./attributes-service-9RwT5ntw.js";import"./repositories-service-C3Wz1XrV.js";import"./repository-groups-service-DCpVLuYg.js";import"./issue-collection-groups-service-D1V_3kRM.js";import"./issue-collections-service-C0lCDBLE.js";import"./detection-service-B4uHB19G.js";import"./path-segments-service-ChRWb7EK.js";import"./issue-attributes-service-Dn-9cfIo.js";import"./select-options-utils-uQe9oLNH.js";import"./metric-query-utils-DBUUshoc.js";import"./ai-tool-meta-F7HIT987.js";import"./d3-vendor-BSjYYawF.js";const It=u=>1-(1-u)**3;function et({from:u=0,to:i,duration:m=900,delay:o=0,onStart:d,onUpdate:h,onComplete:v}){let c=null,r=null;const b=()=>{c&&cancelAnimationFrame(c),r&&clearTimeout(r),c=null,r=null},C=()=>{const T=Number(i);if(!Number.isFinite(T))return;const w=Number(u);d==null||d(),h==null||h(w);const I=performance.now(),A=D=>{const L=D-I,R=Math.min(1,L/m),E=It(R);h(w+(T-w)*E),R<1?c=requestAnimationFrame(A):v==null||v()};c=requestAnimationFrame(A)};return o>0?r=setTimeout(C,o):C(),b}const At=["data-test-id"],Rt={__name:"AnimatedMetricValue",props:{value:{type:Number,default:null},unit:{type:String,default:""},metricKey:{type:String,default:""},duration:{type:Number,default:900},delay:{type:Number,default:0},active:{type:Boolean,default:!0},testId:{type:String,default:"animated-metric-value"}},setup(u){const i=u,m=y(""),o=y(!1);let d=null;const h=r=>tt(r,i.unit,i.metricKey),v=()=>{o.value=!1,m.value=i.value!=null&&Number.isFinite(Number(i.value))?h(i.value):"â"};return Y(()=>[i.value,i.unit,i.metricKey,i.duration,i.delay,i.active],()=>{if(d==null||d(),d=null,!i.active){v();return}const r=Number(i.value);if(!Number.isFinite(r)){o.value=!1,m.value="â";return}o.value=i.delay>0,m.value="",d=et({from:0,to:r,duration:i.duration,delay:i.delay,onStart:()=>{o.value=!1},onUpdate:b=>{m.value=h(b)}})},{immediate:!0}),Z(()=>d==null?void 0:d()),(r,b)=>(p(),_("span",{class:M(["animated-metric-value",{"animated-metric-value--waiting":o.value}]),"data-test-id":u.testId},$(m.value),11,At))}},J=G(Rt,[["__scopeId","data-v-332ae061"]]),Nt=["data-test-id"],xt={__name:"AnimatedIndustryBadge",props:{percent:{type:Number,required:!0},duration:{type:Number,default:600},delay:{type:Number,default:0},active:{type:Boolean,default:!0},testId:{type:String,default:"animated-industry-badge"}},setup(u){const i=u,m=y(0);let o=null;const d=c=>{const r=Math.round(c);return r>0?`+${r}%`:`${r}%`},h=k(()=>d(m.value));return Y(()=>[i.percent,i.duration,i.delay,i.active],()=>{o==null||o(),o=null;const c=Number(i.percent);if(!i.active||!Number.isFinite(c)){m.value=c;return}o=et({from:0,to:c,duration:i.duration,delay:i.delay,onUpdate:r=>{m.value=r}})},{immediate:!0}),Z(()=>o==null?void 0:o()),(c,r)=>(p(),_("span",{"data-test-id":u.testId},$(h.value),9,Nt))}},Dt={class:"launchpad-metric-cards","data-test-id":"launchpad-metric-cards"},Et={class:"launchpad-metric-cards__grid","data-test-id":"launchpad-metric-cards-grid"},Ot=["data-test-id"],Vt={class:"lp-card__top","data-test-id":"launchpad-metric-card-top"}
1,Pt=["data-test-id"],Bt=["data-test-id"],Ft=["data-test-id"],qt={class:"lp-card__title-row","data-test-id":"launchpad-metric-card-title-row"},Wt={class:"lp-card__title-container"},Ut=["data-test-id"],Gt=["data-test-id","onMouseenter"],zt=["data-test-id","onClick"],Ht=["data-test-id"],Kt={class:"lp-card__value-row","data-test-id":"launchpad-metric-card-value-row"},Qt=["data-test-id"],jt=["data-test-id"],Jt=["data-test-id"],Yt=["data-test-id"],Zt=["data-test-id"],Xt=["data-test-id"],te=100,ee={__name:"LaunchpadMetricCards",props:{cards:{type:Array,required:!0},periodLabel:{type:String,default:""}},emits:["updateMetric"],setup(u,{emit:i}){const m=e=>St[e]??"#3b82f6",o=(e,s)=>e*te+s,d=y(!1);rt(()=>{d.value=!0});const h=i,v=y(null),c=y(""),r=y(!1),b=y(null),C=y(""),T=(e,s)=>{C.value=s,b.value=e.currentTarget,r.value=!0},w=()=>{r.value=!1,b.value=null},{data:I,isLoading:A}=Ct("metric_card"),D=k(()=>(I.value||[]).map(e=>({value:kt((e==null?void 0:e.key)??(e==null?void 0:e.metric)??(e==null?void 0:e.id)??(e==null?void 0:e.value)),label:String((e==null?void 0:e.label)??(e==null?void 0:e.title)??(e==null?void 0:e.name)??(e==null?void 0:e.key)??"")})).filter(e=>e.value)),L=()=>{v.value=null,c.value=""},R=e=>{if(v.value===e){L();return}v.value=e,c.value=""},E=(e,s)=>{s&&(h("updateMetric",e,s),L())},F={mounted(e){const s=e.$el??e,t=s.parentElement,a=()=>{if(s.style.fontSize="26px",s.scrollWidth<=t.clientWidth)return;let f=Math.floor(26*(t.clientWidth/s.scrollWidth));for(f=Math.max(20,Math.min(26,f)),s.style.fontSize=`${f}px`;f>20&&s.scrollWidth>t.clientWidth;)f-=1;s.style.fontSize=`${f}px`};s._fitText=a,s._fitTextRo=new ResizeObserver(a),s._fitTextRo.observe(t),a()},updated(e){var s,t;(t=(s=e.$el??e)._fitText)==null||t.call(s)},unmounted(e){var s;(s=(e.$el??e)._fitTextRo)==null||s.disconnect()}};return(e,s)=>(p(),_("div",Dt,[s[3]||(s[3]=l("h2",{class:"launchpad-metric-cards__title","data-test-id":"launchpad-metric-cards-title"}," Waydev Core Metrics ",-1)),l("div",Et,[(p(!0),_(W,null,X(u.cards,(t,a)=>{var n;return p(),_("div",{key:t.slot,class:M(["lp-card",{"lp-card--entered":d.value}]),style:x({"--lp-index":a}),"data-test-id":`launchpad-metric-card-${t.slot}`},[l("div",Vt,[l("span",{class:"lp-card__category","data-test-id":`launchpad-metric-card-category-${t.slot}`},[l("span",{class:"lp-card__category-dot",style:x({backgroundColor:m(t.slot)}),"data-test-id":`launchpad-metric-card-category-dot-${t.slot}`},null,12,Bt),nt(" "+$(t.category),1)],8,Pt),u.periodLabel?(p(),_("span",{key:0,class:"lp-card__period","data-test-id":`launchpad-metric-card-period-${t.slot}`},$(u.periodLabel),9,Ft)):N("",!0)]),l("div",qt,[l("div",Wt,[l("span",{class:"lp-card__title","data-test-id":`launchpad-metric-card-title-${t.slot}`},$(t.title),9,Ut),t.description?(p(),_("button",{key:0,type:"button",class:"lp-card__info-btn","data-test-id":`launchpad-metric-card-info-${t.slot}`,onMouseenter:g=>T(g,t.description),onMouseleave:w},[...s[1]||(s[1]=[l("i",{class:"fe fe-info","aria-hidden":"true"},null,-1)])],40,Gt)):N("",!0)]),l("button",{type:"button",class:"lp-card__edit-btn",title:"Change metric","data-test-id":`launchpad-metric-card-edit-${t.slot}`,onClick:g=>R(t.slot)},[...s[2]||(s[2]=[l("i",{class:"fe fe-edit-2","aria-hidden":"true"},null,-1)])],8,zt),v.value===t.slot?(p(),_("div",{key:0,class:"lp-card__metric-picker","data-test-id":`launchpad-metric-card-picker-${t.slot}`},[S(ht,{"default-open":"","hide-trigger":"","panel-align":"end","panel-min-width":280,"model-value":null,options:D.value,loading:U(A),"has-more":!1,"search-query":c.value,placeholder:"Search metrics...","data-test-id":`launchpad-metric-card-select-${t.slot}`,"onUpdate:modelValue":g=>E(t.slot,g),"onUpdate:searchQuery":s[0]||(s[0]=g=>c.value=g),onClose:L},null,8,["options","loading","search-query","data-test-id","onUpdate:modelValue"])],8,Ht)):N("",!0)]),l("div",Kt,[t.isLoading?(p(),_("span",{key:0,class:"lp-card__skeleton","data-test-id":`launchpad-metric-card-skeleton-${t.slot}`},null,8,Qt)):t.currentValue!=null?(p(),_(W,{key:1},[l("div",{class:"lp-card__value-wrap","data-test-id":`launchpad-metric-card-value-${t.slot}-wrap`},[lt((p(),V(Q(t.reportRoute?"router-link":"span"),{to:t.reportRoute||void 0,class:M(["lp-card__value",t.reportRoute?"lp-card__value--clickable":null]),"data-test-id":`launchpad-metric-card-value-${t.slot}`},{default:B(()=>[t.reportRoute?(p(),V(mt,{key:0},{default:B(()=>[S(J,{value:t.currentValue,unit:t.unit,"metric-key":t.metricId,active:!t.isLoading,delay:o(a,180),duration:2e3,"test-id":`launchpad-metric-card-animated-value-${t.slot}`},null,8,["value","unit","metric-key","active","delay","test-id"])]),_:2},1024)):(p(),V(J,{key:1,value:t.currentValue,unit:t.unit,"metric-key":t.metricId,active:!t.isLoading,delay:o(a,180),duration:2e3,"test-id":`launchpad-metric-card-animated-value-${t.slot}`},null,8,["value","unit","metric-key","active","delay","test-id"]))]),_:2},1032,["to","class","data-test-id"])),[[F]])],8,jt),((n=t.current)==null?void 0:n.length)>1?(p(),V(Q(t.reportRoute?"router-link":"div"),{key:0,to:t.reportRoute||void 0,class:M(["lp-card__sparkline",{"lp-card__sparkline--clickable":t.reportRoute}]),"data-test-id":`launchpad-metric-card-sparkline-${t.slot}`},{default:B(()=>[(p(),V(vt,{key:`${t.slot}-${t.metricId}-${t.isLoading?"loading":"ready"}`,values:t.current,width:80,height:32,color:m(t.slot),animate:!t.isLoading,delay:o(a,480),"test-id":`launchpad-metric-card-trend-${t.slot}`},null,8,["values","color","animate","delay","test-id"]))]),_:2},1032,["to","class","data-test-id"])):N("",!0)],64)):(p(),_("span",{key:2,class:"lp-card__value lp-card__value--empty","data-test-id":`launchpad-metric-card-value-${t.slot}`}," â ",8,Jt))]),!t.isLoading&&t.industryDiffPercent!==null?(p(),_("div",{key:0,class:M(["lp-card__industry",{"lp-card__industry--visible":d.value}]),style:x({"--lp-index":a}),"data-test-id":`launchpad-metric-card-industry-${t.slot}`},[l("span",{class:M(["lp-card__industry-badge",t.industryIsGood?"lp-card__industry-badge--good":"lp-card__industry-badge--bad"]),"data-test-id":`launchpad-metric-card-industry-badge-${t.slot}`},[S(xt,{percent:t.industryDiffPercent,active:!t.isLoading,delay:o(a,620),duration:1200,"test-id":`launchpad-metric-card-animated-industry-${t.slot}`},null,8,["percent","active","delay","test-id"])],10,Zt),l("span",{class:"lp-card__industry-label","data-test-id":`launchpad-metric-card-industry-label-${t.slot}`}," vs Industry Average ",8,Xt)],14,Yt)):N("",!0)],14,Ot)}),128))]),S(_t,{visible:r.value,"target-element":b.value,text:C.value},null,8,["visible","target-element","text"])]))}},ae=G(ee,[["__scopeId","data-v-134bdc92"]]),at="launchpad-card-metrics";function ie(){if(typeof window>"u")return{};try{const u=localStorage.getItem(at);if(!u)return{};const i=JSON.parse(u);return i&&typeof i=="object"?i:{}}
1catch{return{}}}function se(u){typeof window>"u"||!u||localStorage.setItem(at,JSON.stringify(u))}const re={class:"launchpad","data-test-id":"launchpad"},ne={key:0,class:"launchpad__hero","data-test-id":"launchpad-hero"},le={class:"launchpad__input-wrap","data-test-id":"launchpad-input-wrap"},oe={class:"launchpad__cards","data-test-id":"launchpad-cards"},de=["href","data-test-id"],ue={class:"launchpad__card-title","data-test-id":"launchpad-card-title"},ce={class:"launchpad__card-desc","data-test-id":"launchpad-card-desc"},pe={__name:"Launchpad",setup(u){const i=ot(),m=dt(),o=$t("chat"),d=y(""),h=y(null),v=k(()=>ct.flatMap(t=>t.questions)),c=ie(),r=y(Object.fromEntries(P.map(({slot:t,metricId:a})=>[t,c[t]||a]))),b=k(()=>P.map(({slot:t})=>r.value[t]).filter(Boolean)),{inlineFilters:C,ready:T,paramsForMetric:w}=Lt(b),I=t=>{if(!t)return null;const a=new Date(`${t}T00:00:00`);return Number.isNaN(a.getTime())?null:a},A=k(()=>{const t=I(j(m.query["filters[date_from]"])),a=I(j(m.query["filters[date_to]"]));return!t||!a?"":Tt(t,a)}),{getMeta:D}=Mt(),L=Object.fromEntries(P.map(({slot:t})=>[t,wt(k(()=>r.value[t]),w(k(()=>r.value[t]),{representation:"chart"}),{enabled:T})])),R=k(()=>P.map(({slot:t,category:a})=>{const n=r.value[t],g=L[t],f=g.data.value,z=D(n,f),H=yt(f),O=(f==null?void 0:f.current_value)??null,K=(f==null?void 0:f.industry_average)??null,it=gt(f),q=O!==null&&K!==null?bt(O,K,it):null,st=q!==null?q>=0:null;return{slot:t,metricId:n,category:a,title:z.title,description:z.description||null,formattedValue:O!==null?tt(O,H,n):"â",currentValue:O,unit:H,reportRoute:{name:"LaunchpadMetricReport",params:{metricId:n.replace(/_/g,"-")},query:{...m.query}},current:(f==null?void 0:f.current)??[],industryDiffPercent:q,industryIsGood:st,isLoading:g.isLoading.value||g.isFetching.value}})),E=(t,a)=>{r.value={...r.value,[t]:a},se(r.value)},F=t=>{var a,n;d.value=t,s({skillId:((n=(a=h.value)==null?void 0:a.getSelectedSkillId)==null?void 0:n.call(a))??null})},e=[{id:"blog",icon:"fe fe-edit-2",iconBg:"#eef2ff",iconColor:"#4f46e5",borderColor:"#c7d2fe",gradient:"linear-gradient(135deg, #eef2ff 0%, #ffffff 100%)",title:"Waydev Blog",description:"Engineering leadership insights and latest updates",cta:"READ LATEST POSTS",href:"https://waydev.co/blog/"},{id:"case-studies",icon:"fe fe-message-square",iconBg:"#f3e8ff",iconColor:"#9333ea",borderColor:"#e9d5ff",gradient:"linear-gradient(135deg, #f3e8ff 0%, #ffffff 100%)",title:"Customer case studies",description:"Learn how customers use Waydev",cta:"VIEW CASE STUDIES",href:"https://waydev.co/case-studies/"},{id:"setup-guide",icon:"fe fe-monitor",iconBg:"#ecfdf5",iconColor:"#059669",borderColor:"#a7f3d0",gradient:"linear-gradient(135deg, #ecfdf5 0%, #ffffff 100%)",title:"Product Setup Guide",description:"A guided walk through the platform",cta:"START GUIDE",href:"https://docs.waydev.co/
1docs/start-guide"},{id:"soc3",icon:"fe fe-clipboard",iconBg:"#fffbeb",iconColor:"#d97706",borderColor:"#fde68a",gradient:"linear-gradient(135deg, #fffbeb 0%, #ffffff 100%)",title:"SOC 3 report",description:"Download our SOC 3 report",cta:"DOWNLOAD REPORT",href:"https://waydev.co/security"}],s=({skillId:t}={})=>{const a=d.value.trim();if(!a)return;const n={new:"true",message:a};t&&(n.skill_id=t),i.push({name:"Threads",query:n})};return(t,a)=>(p(),_("div",re,[S(ut,{"show-header":!1,filters:U(C),"persist-query":!0,"show-period":!0,"data-test-id":"launchpad-page-wrapper"},{default:B(()=>[S(ae,{cards:R.value,"period-label":A.value,"data-test-id":"launchpad-kpi-cards",onUpdateMetric:E},null,8,["cards","period-label"]),U(o)?(p(),_("div",ne,[a[1]||(a[1]=l("h1",{class:"launchpad__title","data-test-id":"launchpad-title"}," What would you like to know today? ",-1)),a[2]||(a[2]=l("p",{class:"launchpad__subtitle","data-test-id":"launchpad-subtitle"}," Search across your teams, AI agents, and engineering metrics. ",-1)),l("div",le,[S(pt,{ref_key:"chatInputRef",ref:h,modelValue:d.value,"onUpdate:modelValue":a[0]||(a[0]=n=>d.value=n),multiline:"","animated-placeholder":"","placeholder-prefix":"Ask Waydev","placeholder-phrases":v.value,"data-test-id":"launchpad-ai-input",onSend:s},null,8,["modelValue","placeholder-phrases"])]),S(ft,{"test-id-prefix":"launchpad-suggestion","data-test-id":"launchpad-suggestions",onSelect:F})])):N("",!0),l("div",oe,[(p(),_(W,null,X(e,n=>l("a",{key:n.id,href:n.href,target:"_blank",rel:"noopener noreferrer",class:"launchpad__card",style:x({background:n.gradient,borderColor:n.borderColor}),"data-test-id":`launchpad-card-${n.id}`},[l("div",{class:"launchpad__card-icon",style:x({background:n.iconBg,color:n.iconColor}),"data-test-id":"launchpad-card-icon"},[l("i",{class:M(n.icon),"aria-hidden":"true"},null,2)],4),l("div",ue,$(n.title),1),l("div",ce,$(n.description),1),l("div",{class:"launchpad__card-cta",style:x({color:n.iconColor}),"data-test-id":"launchpad-card-cta"},$(n.cta)+" â ",5)],12,de)),64))])]),_:1},8,["filters"])]))}},sa=G(pe,[["__scopeId","data-v-cc828fec"]]);export{sa 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.