1import{B as P,d as S,r,c as n,a as t,b as d,e as C,h,u as y,f as m,v as _,a6 as k,g as w,L as B,t as i,F as L,i as W,D as A,n as D,a9 as H,k as l}from"./index-poWUPOks.js";import{S as I}from"./search-CMlYhsaD.js";const N=P("history",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]),z={class:"bg-white/10 backdrop-blur-md rounded-2xl p-6 shadow-xl"},G={class:"text-xl font-bold text-white flex items-center gap-2 mb-6"},M={class:"grid md:grid-cols-2 gap-4 mb-4"},R={class:"grid md:grid-cols-2 gap-4 mb-4"},$={class:"flex gap-4 mb-6"},j={class:"flex items-center gap-2 text-sm text-blue-300"},O={class:"flex items-center gap-2 text-sm text-blue-300"},E=["disabled"],q={key:0,class:"mt-4 text-red-400 text-sm text-center"},K={key:1,class:"mt-6 space-y-4"},J={key:0,class:"bg-white/5 rounded-lg p-4"},Q={class:"grid grid-cols-2 md:grid-cols-4 gap-4 text-center"},X={class:"text-2xl font-bold text-white"},Y={key:0},Z={class:"text-2xl font-bold text-blue-400"},ee={key:1},te={class:"text-2xl font-bold text-white"},se={key:2},le={class:"text-2xl font-bold text-green-400"},oe={key:1,class:"space-y-2"},ae={class:"flex justify-between items-center"},ie={class:"text-sm font-semibold text-white"},ne={class:"text-xs text-blue-400"},re={key:0,class:"text-right"},ue={class:"text-lg font-bold text-white"},de={key:2,class:"text-center py-4 text-blue-300"},me=S({__name:"WhatIfAnalysis",setup(U){const v=r(""),u=r(""),c=r(void 0),p=r(void 0),b=r(void 0),f=r(void 0),x=r(!1),g=r(""),a=r(null);async function V(){x.value=!0,g.value="",a.value=null;try{const o=new URLSearchParams;v.value&&o.set("home_team",v.value),u.value&&o.set("away_team",u.value),c.value!==void 0&&o.set("spread",c.value.toString()),p.value!==void 0&&o.set("over_under",p.value.toString()),b.value!==void 0&&o.set("is_primetime",b.value.toString()),f.value!==void 0&&o.set("is_playoff",f.value.toString());const e=await A(`/api/whatif/similar-games?${o}`);if(!e.ok)throw new Error(`HTTP ${e.status}`);a.value=await e.json()}catch(o){g.value=o.message}finally{x.value=!1}}function T(o){return new Date(o).toLocaleDateString()}function F(o){return o==="home"?"text-blue-400":o==="away"?"text-red-400":"text-gray-400"}return(o,e)=>(l(),n("div",z,[t("h3",G,[C(y(N),{size:20,class:"text-orange-400"}),e[6]||(e[6]=h(" What-If Historical Analysis ",-1))]),t("div",M,[t("div",null,[e[7]||(e[7]=t("label",{class:"block text-sm text-blue-300 mb-1"},"Home Team",-1)),m(t("input",{"onUpdate:modelValue":e[0]||(e[0]=s=>v.value=s),type:"text",placeholder:"e.g., Chiefs, KC",class:"w-full bg-white/10 border border-white/20 rounded-lg px-4 py-2 text-white placeholder-blue-300/50 focus:outline-none focus:ring-2 focus:ring-orange-500"},null,512),[[_,v.value]])]),t("div",null,[e[8]||(e[8]=t("label",{class:"block text-sm text-blue-300 mb-1"},"Away Team",-1)),m(t("input",{"onUpdate:modelValue":e[1]||(e[1]=s=>u.value=s),type:"text",placeholder:"e.g., Bills, BUF",class:"w-full bg-white/10 border border-white/20 rounded-lg px-4 py-2 text-white placeholder-blue-300/50 focus:outline-none focus:ring-2 focus:ring-orange-500"},null,512),[[_,u.value]])])]),t("div",R,[t("div",null,[e[9]||(e[9]=t("label",{class:"block text-sm text-blue-300 mb-1"},"Point Spread",-1)),m(t("input",{"onUpdate:modelValue":e[2]||(e[2]=s=>c.value=s),type:"number",step:"0.5",placeholder:"e.g., -3.5",class:"w-full bg-white/10 border border-white/20 rounded-lg px-4 py-2 text-white placeholder-blue-300/50 focus:outline-none focus:ring-2 focus:ring-orange-500"},null,512),[[_,c.value,void 0,{number:!0}]])]),t("div",null,[e[10]||(e[10]=t("label",{class:"block text-sm text-blue-300 mb-1"},"Over/Under",-1)),m(t("input",{"onUpdate:modelValue":e[3]||(e[3]=s=>p.value=s),type:"number",step:"0.5",placeholder:"e.g., 47.5",class:"w-full bg-white/10 border border-white/20 rounded-lg px-4 py-2 text-white placeholder-blue-300/50 focus:outline-none focus:ring-2 focus:ring-orange-500"},null,512),[[_,p.value,void 0,{number:!0}]])])]),t("div",$,[t("label",j,[m(t("input",{"onUpdate:modelValue":e[4]||(e[4]=s=>b.value=s),type:"checkbox",class:"rounded bg-white/10 border-white/20"},null,512),[[k,b.value]]),e[11]||(e[11]=h(" Primetime Only ",-1))]),t("label",O,[m(t("input",{"onUpdate:modelValue":e[5]||(e[5]=s=>f.value=s),type:"checkbox",class:"rounded bg-white/10 border-white/20"},null,512),[[k,f.value]]),e[12]||(e[12]=h(" Playoff Games Only ",-1))])]),t("button",{onClick:V,disabled:x.value,class:"w-full py-3 bg-orange-600 hover:bg-orange-700 disabled:bg-orange-800 text-white rounded-lg font-semibold flex items-center justify-center gap-2 transition-all"},[x.value?(l(),w(y(B),{key:0,size:18,class:"animate-spin"})):(l(),w(y(I),{key:1,size:18}
1)),h(" "+i(x.value?"Searching...":"Find Similar Games"),1)],8,E),g.value?(l(),n("div",q,i(g.value),1)):d("",!0),a.value?(l(),n("div",K,[a.value.summary?(l(),n("div",J,[e[17]||(e[17]=t("h4",{class:"text-sm font-semibold text-blue-300 mb-3"},"Summary",-1)),t("div",Q,[t("div",null,[t("p",X,i(a.value.summary.total_games_found),1),e[13]||(e[13]=t("p",{class:"text-xs text-blue-400"},"Games Found",-1))]),a.value.summary.home_win_rate!==null?(l(),n("div",Y,[t("p",Z,i((a.value.summary.home_win_rate*100).toFixed(1))+"%",1),e[14]||(e[14]=t("p",{class:"text-xs text-blue-400"},"Home Win Rate",-1))])):d("",!0),a.value.summary.average_total_points!==null?(l(),n("div",ee,[t("p",te,i(a.value.summary.average_total_points),1),e[15]||(e[15]=t("p",{class:"text-xs text-blue-400"},"Avg Total Pts",-1))])):d("",!0),a.value.summary.spread_cover_rate!==null?(l(),n("div",se,[t("p",le,i((a.value.summary.spread_cover_rate*100).toFixed(1))+"%",1),e[16]||(e[16]=t("p",{class:"text-xs text-blue-400"},"Cover Rate",-1))])):d("",!0)])])):d("",!0),a.value.similar_games?.length>0?(l(),n("div",oe,[e[18]||(e[18]=t("h4",{class:"text-sm font-semibold text-blue-300"},"Similar Games",-1)),(l(!0),n(L,null,W(a.value.similar_games.slice(0,10),s=>(l(),n("div",{key:s.id,class:"bg-white/5 hover:bg-white/10 rounded-lg p-3 transition-all cursor-pointer"},[t("div",ae,[t("div",null,[t("p",ie,i(s.away_team?.name||"Away")+" @ "+i(s.home_team?.name||"Home"),1),t("p",ne,i(T(s.date))+" · Season "+i(s.season),1)]),s.winner?(l(),n("div",re,[t("p",ue,i(s.away_score)+" - "+i(s.home_score),1),t("p",{class:D(["text-xs font-semibold",F(s.winner)])},i(s.winner.toUpperCase())+" WINS ",3)])):(l(),w(y(H),{key:1,size:20,class:"text-blue-400"}))])]))),128))])):a.value.similar_games?.length===0?(l(),n("div",de," No similar games found matching your criteria ")):d("",!0)])):d("",!0)]))}}),ve={class:"container mx-auto px-4 py-6"},pe=S({__name:"WhatIfView",setup(U){return(v,u)=>(l(),n("div",ve,[u[0]||(u[0]=t("h1",{class:"text-2xl font-bold text-white mb-6"},"What-If Analysis",-1)),C(me)]))}});export{pe 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.