1import{a as Tt}from"./chunk-TIKZZMZP.js";import{a as Bt}from"./chunk-MEEDDPWB.js";import{a as se,b as kt}from"./chunk-5UDAYBWC.js";import{a as vt}from"./chunk-QTSPCQYI.js";import{a as wt}from"./chunk-RCNWZPXC.js";import{a as Ct}from"./chunk-AOYURV5Y.js";import{a as tt}from"./chunk-7N6XUME4.js";import{a as re,b as St}from"./chunk-3VEOF3MH.js";import{a as xt}from"./chunk-XJLTXZLK.js";import{a as _t}from"./chunk-67RUCWWF.js";import"./chunk-ZIMAM3FL.js";import"./chunk-ZLPDN22J.js";import{a as ft}from"./chunk-P2PVVIZ4.js";import{a as yt}from"./chunk-JIYXSNP6.js";import{a as W}from"./chunk-JHTXNVJ2.js";import{a as bt}from"./chunk-PG4MAJFI.js";import"./chunk-FRWWOKBV.js";import"./chunk-GBMHSVWA.js";import"./chunk-L4SZ7HJY.js";import{a as gt}from"./chunk-4V637TOY.js";import"./chunk-XWQSKYBM.js";import{d as st}from"./chunk-24SWI6SV.js";import{a as ut}from"./chunk-Q4VDLKR6.js";import"./chunk-YPNPAUY4.js";import"./chunk-L435M7MP.js";import{a as lt,c as pt}from"./chunk-S2IEF3NU.js";import"./chunk-N5KCPBSN.js";import"./chunk-6RDBEQD6.js";import"./chunk-DTNGPAZR.js";import{a as ae}from"./chunk-WMYDQP5F.js";import"./chunk-3ZEVMZWN.js";import{a as ct}from"./chunk-VXEI2BL7.js";import"./chunk-OFDGY6SI.js";import{a as mt}from"./chunk-TOGIO5UI.js";import{a as dt}from"./chunk-3B55N7HD.js";import"./chunk-AGN5YY5F.js";import"./chunk-NJFU6BAM.js";import{a as rt}from"./chunk-CXAYO62M.js";import"./chunk-6JRV3BEU.js";import{a as Ge}from"./chunk-2YFDOLWV.js";import"./chunk-BWCSAF7V.js";import"./chunk-2SJ2BRC2.js";import{a as at}from"./chunk-L6V22PC4.js";import{a as ht}from"./chunk-7WCGGCOI.js";import"./chunk-3T2ND6BB.js";import"./chunk-IWLB3YK7.js";import"./chunk-23E7OCEB.js";import"./chunk-BBIBHURZ.js";import{H as je,M as $e,l as Re,u as He}from"./chunk-HJCDIB7O.js";import"./chunk-PF2KT7XE.js";import"./chunk-CVIRKZRM.js";import"./chunk-ZBPDVHWU.js";import"./chunk-ZTXBLYYV.js";import"./chunk-BZQEHNE4.js";import"./chunk-JCPPKLIL.js";import{S as ze,T as Ke,W as We,Y as Qe,k as Ne,n as qe,z as ee}from"./chunk-6IZSWBEI.js";import{c as K}from"./chunk-OIQDN3DQ.js";import"./chunk-I6CCTIVI.js";import"./chunk-S3WBTXLR.js";import{c as z,h as te,k as it,p as ie,q as ot,r as nt}from"./chunk-LKKBC7SV.js";import"./chunk-I7X5EPSI.js";import{a as Xe,b as et}from"./chunk-FBYAPGXK.js";import{a as Ze}from"./chunk-H5XFMEYX.js";import{b as A,i as Ye}from"./chunk-5CG62MG4.js";import{u as Je}from"./chunk-WL7LDOGK.js";import"./chunk-FAKKFPWS.js";import{d as Ae,l as Y}from"./chunk-SYOTIUFV.js";import{a as Ie}from"./chunk-KRN42HVV.js";import{a as oe}from"./chunk-M26XU57I.js";import{a as Ue,b as q}from"./chunk-676XKZYL.js";import"./chunk-KVWVYYU6.js";import"./chunk-EAJDRVGJ.js";import"./chunk-LP67NEQS.js";import{a as ne}from"./chunk-ALSL2IRL.js";import{K as Fe,j as X,s as Ee,t as Le}from"./chunk-SDWWVTYX.js";import{$b as Be,$c as V,Ab as U,Bb as R,Fc as m,Gc as D,Hb as _e,Hc as w,Ia as ue,J as ce,Jc as Te,Lc as O,M as G,Mc as E,Nc as J,Ob as xe,Oc as Pe,Pa as he,Pc as Ve,Qb as ve,Qc as Me,Sb as Ce,Ua as ge,Vb as Z,Wb as Se,Xb as u,Yb as we,Zb as h,_ as x,ac as H,ad as L,bc as j,bd as De,cc as g,dc as p,ec as l,f as Q,fb as fe,fc as f,ga as I,gb as be,ka as b,lb as a,mc as B,qc as C,ra as y,rd as F,sa as _,sc as c,ud as Oe,vb as ye,wa as de,wc as ke,xa as me,xc as $,yc as N}from"./chunk-XY2K67OX.js";import{a as S,b as k,c as pe}from"./chunk-NAIKXHWT.js";var Et=["blockBody"],Lt=["otherBetsSection"],Ft=["emptyStatePicker"],At=()=>[ae,oe,X];function It(o,d){if(o&1&&(p(0,"span",18),m(1," Last Update: "),p(2,"time",19),m(3),V(4,"tzFormat"),l(),m(5,". "),l()),o&2){let e=c(2);a(2),Z("datetime",e.latestLastUpdated),a(),D(De(4,2,e.latestLastUpdated,"last-updated"))}}function Ut(o,d){if(o&1){let e=B();p(0,"div",4)(1,"app-search-input",12),J("valueChange",function(i){y(e);let s=c();return E(s.betsSearch,i)||(s.betsSearch=i),_(i)}),C("valueChange",function(){y(e);let i=c();return _(i.onSearchKeyup())})("focusin",function(){y(e);let i=c();return _(i.openModalIfNotPro())}),l(),p(2,"div",13)(3,"div",14)(4,"button",15),C("click",function(){y(e);let i=c();return _(i.openFilter())}),p(5,"span"),m(6," Filter "),l(),f(7,"fa-icon",16),l(),p(8,"app-dropdown",17),C("valueChange",function(i){y(e);let s=c();return _(s.onSortChange(i))}),l()()(),u(9,It,6,5,"span",18),l()}if(o&2){let e=c(),t=Me(2);a(),O("value",e.betsSearch),g("readonly",t!==!0),a(6),g("icon",e.faSliders),a(),g("options",e.sortDropdownOptions(t===!0))("value",e.betSort)("searchable",!1)("triggerLabel",e.sortCategoryLabel)("compactTriggerLabel",e.compactSortCategoryLabel)("leadingIcon",e.sortCategoryIcon),a(),h(e.totalAvailableBets>0?9:-1)}}function Rt(o,d){o&1&&f(0,"app-skeleton",6),o&2&&g("lines",8)}function Ht(o,d){if(o&1){let e=B();p(0,"div",7)(1,"span",20)(2,"span"),m(3),l()(),p(4,"span"),m(5," Please "),p(6,"span",21),C("click",function(){y(e);let i=c();return _(i.retrieveValueBets())}),m(7," try again "),l()()()}if(o&2){let e=c();a(3),w(" We are having trouble loading ",e.localisationService.localeTerm("value_picks","title-case")," data ")}}function jt(o,d){if(o&1&&(p(0,"div",7),m(1),l()),o&2){let e=c();a(),w(" No ",e.localisationService.localeTerm("value_picks","title-case")," available, please try again later. ")}}function $t(o,d){if(o&1&&(p(0,"div",7),m(1),l()),o&2){let e=c();a(),w(" No ",e.localisationService.localeTerm("value_picks","title-case")," available for your chosen filters ")}}function Nt(o,d){if(o&1){let e=B();p(0,"div",22)(1,"div",24),m(2," No bets from your selected sportsbooks "),l(),p(3,"div",25),m(4," No available best bets were found from your selected sportsbooks. Change your settings or browse other best bets below. "),l(),p(5,"button",26),C("click",function(){y(e);let i=c(2);return _(i.openEmptyStatePicker())}),m(6," Manage sportsbooks "),l(),f(7,"app-global-sportsbook-filter",27,1),l()}o&2&&(a(7),g("hideTrigger",!0))}function qt(o,d){o&1&&(p(0,"span"),m(1,"From all sportsbooks:"),l())}function zt(o,d){if(o&1&&(p(0,"span"),m(1),l()),o&2){let e=c(3);a(),w("Using your ",e.selectedBooks.length===1?"sportsbook":"sportsbooks",":")}}function Kt(o,d){if(o&1&&m(0),o&2){let e=c(3);w(" of ",e.totalAvailableBets," ")}}function Wt(o,d){if(o&1&&(f(0,"img",34),V(1,"bookIcon")),o&2){let e=d.$implicit,t=c(4);g("src",L(1,2,e),be)("alt",t.betService.stylisedBookName(e))}}
1function Qt(o,d){if(o&1&&(p(0,"span",35),m(1),l()),o&2){let e=c(4);a(),w(" ",e.bookmakerFilterService.remainingCount(e.getOtherSportsbooks())," ")}}function Gt(o,d){if(o&1){let e=B();p(0,"button",32),C("click",function(){y(e);let i=c(3);return _(i.scrollToOtherBets())}),m(1," See bets from other sportsbooks "),p(2,"span",33),H(3,Wt,2,4,"img",34,Be),u(5,Qt,2,1,"span",35),l()()}if(o&2){let e=c(3);a(3),j(e.bookmakerFilterService.visibleBooks(e.getOtherSportsbooks())),a(2),h(e.bookmakerFilterService.hasRemainingBooks(e.getOtherSportsbooks())?5:-1)}}function Zt(o,d){if(o&1&&(p(0,"div",23)(1,"div",28),u(2,qt,2,0,"span")(3,zt,2,1,"span"),p(4,"span",29),m(5),u(6,Kt,1,1),m(7),l(),f(8,"app-global-sportsbook-filter",30),l(),u(9,Gt,6,1,"button",31),l()),o&2){let e=c(2);a(2),h(e.isAllSportsbooksSelected()?2:3),a(3),w(" ",e.preferredAvailableBets," "),a(),h(e.isAllSportsbooksSelected()?-1:6),a(),w(" ",e.totalAvailableBets===1?"bet":"bets"," "),a(),g("bareTrigger",!0),a(),h(!e.isAllSportsbooksSelected()&&e.otherAvailableBets>0?9:-1)}}function Jt(o,d){if(o&1&&u(0,Nt,9,1,"div",22)(1,Zt,10,6,"div",23),o&2){let e=c();h(e.preferredAvailableBets===0?0:1)}}function Xt(o,d){if(o&1&&f(0,"app-value-bet-row",37),o&2){let e=c(3).$implicit;g("play",e)("proOnly",!1)}}function Yt(o,d){if(o&1&&(p(0,"div",44)(1,"div",45)(2,"span",46),m(3),l()()()),o&2){let e=c(5);a(3),w(" ",e.freeTrialCtaText[d]," ")}}function ei(o,d){if(o&1){let e=B();p(0,"app-card",39),C("click",function(){y(e);let i=c(4);return _(i.openProModal())}),f(1,"img",40),p(2,"div",41)(3,"span",42),m(4," All bets beyond this point are for Pro members"),l(),p(5,"span",43),m(6),l()(),u(7,Yt,4,1,"div",44),V(8,"async"),l()}if(o&2){let e,t=c(4);g("padded",!1)("showBackground",!1),a(6),D(t.proBannerText),a(),h((e=L(8,4,t.authHelper.freeTrialCtaState$))?7:-1,e)}}function ti(o,d){if(o&1&&(u(0,Xt,1,2,"app-value-bet-row",37),V(1,"async"),we(2,ei,9,6,"app-card",38)),o&2){let e=c(3);h(L(1,1,e.proUser$)===!0?0:2)}}function ii(o,d){o&1&&f(0,"div",47)}function oi(o,d){o&1&&(p(0,"div",36),_e(1,ti,3,3)(2,ii,1,0),xe(3,1,At,null,2,null,null,null,null,1),Ce(),ve(),l())}function ni(o,d){if(o&1&&f(0,"app-value-bet-row",37),o&2){let e=c(),t=e.$implicit,i=e.$index,s=c();g("play",t)("proOnly",i>=s.freeLimit)}}function ai(o,d){if(o&1&&u(0,oi,5,0,"div",36)(1,ni,1,2,"app-value-bet-row",37),o&2){let e=d.$index,t=c();h(e===t.freeLimit&&t.displayedValuePlays.length>t.freeLimit?0:1)}}function ri(o,d){if(o&1){let e=B();p(0,"div",8)(1,"div",48),C("click",function(){y(e);let i=c();return _(i.showMorePicks())}),m(2," Load more bets "),l()()}}function si(o,d){if(o&1&&f(0,"app-value-bet-row",37),o&2){let e=d.$implicit;g("play",e)("proOnly",!1)}}function li(o,d){if(o&1){let e=B();p(0,"div",8)(1,"div",48),C("click",function(){y(e);let i=c(3);return _(i.showMoreOtherPicks())}),m(2," Load more bets "),l()()}}function pi(o,d){if(o&1&&(H(0,si,1,2,"app-value-bet-row",37,Se().trackValuePlay,!0),u(2,li,3,0,"div",8)),o&2){let e=c(2);j(e.displayedOtherValuePlays),a(2),h(e.showMoreOtherVisible?2:-1)}}function ci(o,d){if(o&1){let e=B();p(0,"div",9,2)(2,"app-card",49)(3,"div",50)(4,"div")(5,"div",51),m(6," From other sportsbooks: "),p(7,"span",52),m(8),l()()(),p(9,"button",53),C("click",function(){y(e);let i=c();return _(i.otherResultsHidden?i.showOtherResults():i.hideOtherResults())}),p(10,"span"),m(11),l(),f(12,"fa-icon",54),l()(),u(13,pi,3,1),l()()}if(o&2){let e=c();a(2),g("showBackground",!1)("overflow","visible"),a(6),Te(" ",e.otherAvailableBets," of ",e.totalAvailableBets," ",e.totalAvailableBets===1?"bet":"bets"," "),a(),Z("aria-expanded",!e.otherResultsHidden),a(2),w(" ",e.otherResultsHidden?"Show":"Hide"," "),a(),g("icon",e.otherResultsHidden?e.faChevronDown:e.faChevronUp),a(),h(e.otherResultsHidden?-1:13)}}var Pt=(()=>{class o{response;destroy$=new Q;cdr=b(Oe);showFilter=!0;sports;blockBody;otherBetsSection;emptyStatePicker;selectedBooks=[...A];bookOptions=[];browserMode=!1;blockInitStarted=!1;filterBetTypes=["line","total","h2h","other","bts","double_chance","win_nil"];filterSports=[];filterTimeframe=168;freeLimit=3;valueBetsSports=[];valuePlays=[];valuePlaysError=!1;valuePlaysLoading=!0;startingDisplayLimit=20;currentDisplayLimit=0;otherDisplayLimit=0;betSort="winprob";displayedValuePlays=[];displayedOtherValuePlays=[];showMorePreferredVisible=!1;showMoreOtherVisible=!1;otherResultsHidden=!1;preferredAvailableBets=0;otherAvailableBets=0;proBannerText="";hiddenBetCount=0;maxHiddenEdge=0;betsSearch="";freeTrialCtaText=Ge;mobileFilterOpen=!1;betTypes=["line","total","h2h","other","bts","double_chance","win_nil"];currentAvailableBets=0;totalAvailableBets=0;selectedTags=[];tagsFilterOption;sortCategoryLabel="";compactSortCategoryLabel="";sortCategoryIcon=ee;sortCategories=[{label:"Earliest first",text:"Game Time",sort:"date",group:"Game time"},{label:"Latest first",text:"Game Time",sort:"-date",group:"Game time"},{label:"Highest first",text:"Edge",sort:"edge",group:"Edge"},{label:"Lowest first",text:"Edge",sort:"-edge",group:"Edge"},{label:"Highest first",text:"Probability",sort:"winprob",group:"Probability"},{label:"Lowest first",text:"Probability",sort:"-winprob",group:"Probability"}];latestLastUpdated=null;faChevronUp=qe;faChevronDown=Qe;faTimes=je;faSquare=Re;faCheckSquare=Ne;faSliders=ze;faArrowDown=We;faSpinner=$e;faCircleInfo=He;faSortAmountDown=ee;faSortAmountUp=Ke;maxEdgeFilter=null;minEdgeFilter=null;maxEdge=null;minEdge=null;sweetSpotRules=[];warningRules=[];matchService=b(ot);sportDataService=b(nt);generalService=b(Xe);betService=b(et);localisationService=b(z);authHelper=b(Je);platformId=b(he);
1document=b(de);transferState=b(ge);blogService=b(K);gtmTrackingService=b(Ye);sweetSpotService=b(mt);route=b(Ae);bookmakerFilterService=b(rt);searchSubject=new Q;bestBetMinEdge=2;constructor(e){this.response=e,this.browserMode=Ee(this.platformId)}proUser$=this.authHelper.isProUser$;ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}prepareBlock(){this.maxEdge=null,this.minEdge=null,this.blockInitStarted=!0,this.valuePlaysError=!1,this.updateSortCategoryLabel(),this.valueBetsSports=this.sports.map(t=>t.toUpperCase()).filter(t=>t!=="SLC");let e=this.takeCachedMatches();e?this.postMatchesFetch(e):this.valuePlaysLoading=!0,this.resetDisplayLimits(),this.proUser$.pipe(x(this.destroy$)).subscribe(t=>{t===!1&&(this.currentDisplayLimit-=1)}),this.filterSports=this.valueBetsSports.slice(),this.filterSports=this.filterSports.filter(t=>t!=="AFL"&&t!=="NRL"),this.bookOptions=A,this.valueBetsSports.length===1&&this.valueBetsSports[0].toLowerCase().trim()==="nfl"?this.filterTimeframe=336:this.filterTimeframe=168,this.matchService.getGeoData().then(()=>{this.retrieveValueBets()},()=>{this.retrieveValueBets()})}checkForInternalLinkClick(e){this.generalService.checkForInternalLinkClick(e)}ngOnInit(){F()&&console.info("[ValueBetsBlock] ngOnInit called"),this.tagsFilterOption=ct.filter(e=>e.type==="best bet").map(e=>k(S({},e),{open:!1})),this.sweetSpotService.getWarningRules().pipe(x(this.destroy$)).subscribe(e=>{this.warningRules=e,this.updateCautionTagLogic(),this.selectedTags.includes("caution")&&(this.resetDisplayLimits(),this.setDisplayedValuePlays())}),this.sweetSpotService.getRules().pipe(x(this.destroy$)).subscribe(e=>{this.sweetSpotRules=e,this.updateSweetSpotTagLogic(),this.applySweetSpotQueryParam()}),this.sports&&!this.blockInitStarted&&this.prepareBlock(),this.searchSubject.pipe(ce(300),G(),x(this.destroy$)).subscribe(()=>{this.setDisplayedValuePlays()}),F()&&console.info("[ValueBetsBlock] Setting up service subscription"),this.bookmakerFilterService.selectedBooks$.pipe(G(),x(this.destroy$)).subscribe(e=>{this.selectedBooks=e,this.resetDisplayLimits(),this.otherResultsHidden=!1,this.setDisplayedValuePlays()}),F()&&console.info("[ValueBetsBlock] Service subscription complete")}onSearchKeyup(){this.searchSubject.next(this.betsSearch)}ngOnChanges(e){!this.blockInitStarted&&e.sports.currentValue?this.prepareBlock():e.sports?.currentValue&&e.sports?.previousValue&&e.sports.currentValue!==e.sports.previousValue&&this.prepareBlock()}setFilterTimeframe=e=>{this.proUser$.pipe(x(this.destroy$)).subscribe(t=>{if(t)this.filterTimeframe=e,this.resetDisplayLimits(),this.setDisplayedValuePlays();else{let i={event:"pro_modal_appearance",event_category:"timeframe-toggle"};this.gtmTrackingService.pushTagAndNavigate(i),this.blogService.setProModalData(!0)}})};showMorePicks=()=>{this.currentDisplayLimit+=this.startingDisplayLimit,this.setDisplayedValuePlays()};showMoreOtherPicks=()=>{this.otherDisplayLimit+=this.startingDisplayLimit,this.setDisplayedValuePlays()};resetDisplayLimits(){this.currentDisplayLimit=this.startingDisplayLimit,this.otherDisplayLimit=this.startingDisplayLimit}sortDropdownOptions(e){return this.sortCategories.map(t=>({value:t.sort,label:t.label,group:t.group,locked:t.sort!==this.betSort&&e===!1,icon:t.sort.startsWith("-")?this.faSortAmountUp:this.faSortAmountDown}))}updateSortCategoryLabel(){let e=this.sortCategories.find(t=>t.sort===this.betSort);e&&(this.sortCategoryLabel=`Sort: ${e.text.toLowerCase()}, ${e.label.toLowerCase()}`,this.compactSortCategoryLabel=`Sort: ${e.text.toLowerCase()}`,this.sortCategoryIcon=e.sort.startsWith("-")?this.faSortAmountUp:this.faSortAmountDown)}onSortChange(e){let t=this.sortCategories.find(i=>i.sort===e);t&&this.setBetSort(t)}setBetSort(e){this.proUser$.pipe(x(this.destroy$)).subscribe(t=>{if(t)this.betSort=e.sort,this.updateSortCategoryLabel(),this.resetDisplayLimits(),this.setDisplayedValuePlays();else{let i={event:"pro_modal_appearance",event_category:"sort-toggle"};this.gtmTrackingService.pushTagAndNavigate(i),this.blogService.setProModalData(!0)}})}retrieveValueBets=()=>{this.valuePlays.length===0&&(this.valuePlaysLoading=!0),this.valuePlaysError=!1,F()&&console.info("[ValueBetsBlock] Using all books for API call:",A);let e=this.localisationService.getLocaleObject().sportExclusiveBookmakers,t=this.getValueBetsStateKey();this.sportDataService.getUpcomingGames(this.valueBetsSports,!1,!0,A,e).pipe(x(this.destroy$)).subscribe({next:i=>{Le(this.platformId)&&this.transferState.set(t,this.toCacheableMatches(i)),this.postMatchesFetch(i)},error:i=>{console.error(i.message||i),this.valuePlaysError=!0}})};getValueBetsStateKey(){return`value-bets-block:${this.valueBetsSports.join(",")}`}takeCachedMatches(){if(!this.browserMode)return null;let e=this.getValueBetsStateKey(),t=this.transferState.get(e,null);return t&&this.transferState.remove(e),t}toCacheableMatches(e){return e.filter(t=>t.aggregatedBestBets?.some(i=>this.meetsBestBetEdgeThreshold(i))).map(t=>k(S({},t),{LiveData:void 0,aggregatedBettingInfo:void 0,aggregatedBestParlay:void 0,BettingData:t.BettingData?Object.fromEntries(Object.entries(t.BettingData).map(([i,s])=>[i,{bestBets:s?.bestBets}])):t.BettingData}))}postMatchesFetch=e=>{e.forEach(n=>
1{n.MatchData.UserDate=ie(n.MatchData.Date)});let t=e.filter(n=>this.valueBetsSports.includes(n.MatchData.Sport.toUpperCase())&&this.matchService.isUpcoming(n)).sort((n,r)=>this.matchService.gameDisplaySort(n,r)),i=[];for(let n of t)if(n.aggregatedBestBets&&n.aggregatedBestBets.length>0){let r=n.aggregatedBestBets.filter(P=>this.meetsBestBetEdgeThreshold(P)),s=n,{aggregatedBestBets:v,BettingData:T}=s,M=pe(s,["aggregatedBestBets","BettingData"]);for(let P of r)i.push(this.createValuePlay(n,M,P))}if(this.valuePlays=i,this.setDisplayedValuePlays(),this.valuePlays.length>0){let n=this.valuePlays.map(r=>r.edge);this.maxEdge=Math.ceil(Math.max(...n)*10)/10,this.minEdge=Math.trunc(Math.min(...n)*10)/10}this.valuePlays.length>0&&this.valuePlays.some(n=>n.match.PreData.LastUpdated)?(this.latestLastUpdated=tt(this.valuePlays.map(n=>{try{return n.match.PreData.LastUpdated?ie(n.match.PreData.LastUpdated):0}catch(r){return 0}})),this.response&&this.response.set("Last-Modified",this.latestLastUpdated.toUTCString())):this.latestLastUpdated=null,this.valuePlaysLoading=!1,this.cdr.markForCheck()};toggleAllFilterBetType=()=>{this.filterBetTypes.length===this.betTypes.length?this.filterBetTypes=[]:this.filterBetTypes=this.betTypes.slice(),this.resetDisplayLimits(),this.proUser$.pipe(x(this.destroy$)).subscribe(e=>{e===!1&&(this.currentDisplayLimit-=1)}),this.setDisplayedValuePlays()};toggleFilterBetType=e=>{this.proUser$.pipe(x(this.destroy$)).subscribe(t=>{t&&(this.filterBetTypes.includes(e)?this.filterBetTypes.splice(this.filterBetTypes.indexOf(e),1):this.filterBetTypes.push(e),this.resetDisplayLimits(),this.setDisplayedValuePlays())})};toggleAllFilterSports=()=>{this.filterSports.length===this.valueBetsSports.length?this.filterSports=[]:this.filterSports=this.valueBetsSports.slice(),this.resetDisplayLimits(),this.proUser$.pipe(x(this.destroy$)).subscribe(e=>{e===!1&&(this.currentDisplayLimit-=1)}),this.setDisplayedValuePlays()};toggleFilterSport=e=>{this.filterSports.includes(e)?this.filterSports.splice(this.filterSports.indexOf(e),1):this.filterSports.push(e),this.resetDisplayLimits(),this.setDisplayedValuePlays()};trackValuePlay(e,t){return[t.match?.MatchData?.SIMatchID||"",t.type||"",t.bet||"",t.line??t.lineValue??t.markValue??"",t.bookmaker].join("|")}setDisplayedValuePlays(){let e=this.isAllSportsbooksSelected(),t=this.getDisplayableValuePlays(this.selectedBooks,e),i=new Set(t.map(r=>r.canonicalKey)),s=e?[]:this.getDisplayableValuePlays(this.getOtherSportsbooks(),!1).filter(r=>!i.has(r.canonicalKey)),n=t;this.preferredAvailableBets=t.length,this.otherAvailableBets=s.length,this.totalAvailableBets=e?n.length:t.length+s.length,this.currentAvailableBets=n.length,this.displayedValuePlays=n.slice(0,this.currentDisplayLimit),this.displayedOtherValuePlays=e||this.otherResultsHidden?[]:s.slice(0,this.otherDisplayLimit),this.showMorePreferredVisible=n.length>this.currentDisplayLimit,this.showMoreOtherVisible=!e&&!this.otherResultsHidden&&s.length>this.otherDisplayLimit,n.length>this.freeLimit?(this.hiddenBetCount=n.length-this.freeLimit,this.maxHiddenEdge=Math.max(...n.slice(this.freeLimit).map(r=>r.edge)),this.proBannerText=`Unlock ${this.hiddenBetCount} more ${this.hiddenBetCount===1?"bet with up to":"bets with up to"} ${this.indefinitePrefix(this.maxHiddenEdge.toFixed(0))} ${this.maxHiddenEdge.toFixed(0)}% edge`):this.proBannerText="",this.cdr.markForCheck()}isAllSportsbooksSelected(){return this.bookmakerFilterService.isAllSelected(this.selectedBooks)}openEmptyStatePicker(){this.emptyStatePicker?.openPicker()}getOtherSportsbooks(){return this.bookmakerFilterService.getOtherBooks(this.selectedBooks)}hideOtherResults(){this.otherResultsHidden=!0,this.setDisplayedValuePlays()}showOtherResults(){this.otherResultsHidden=!1,this.setDisplayedValuePlays()}scrollToOtherBets(){if(!this.browserMode)return;this.otherResultsHidden&&this.showOtherResults(),this.cdr.detectChanges();let e=this.otherBetsSection?.nativeElement;if(!e)return;let t=this.document.defaultView;if(!t)return;let i=this.document.querySelector("header")?.offsetHeight??0,s=e.getBoundingClientRect().top+t.scrollY-i;t.scrollTo({top:s,behavior:"smooth"})}createValuePlay(e,t,i){let s=this.getCanonicalBetKey(e,i),n=this.getSportsbookOptions(e,i).map(v=>k(S({},v),{match:t,canonicalKey:s})),r=k(S({},i),{match:t,canonicalKey:s,isBestOdds:!0});return k(S({},i),{match:t,sportsbookOptions:n,bestOddsOption:r,isBestOdds:!0,canonicalKey:s})}getSportsbookOptions(e,t){let i=new Map;
1return e.BettingData&&Object.entries(e.BettingData).forEach(([s,n])=>{n?.bestBets?.filter(r=>this.betsShareMarket(r,t)).forEach(r=>{let v=k(S({},r),{bookmaker:r.bookmaker||s}),T=i.get(v.bookmaker);(!T||this.compareSportsbookOptions(v,T)<0)&&i.set(v.bookmaker,v)})}),i.has(t.bookmaker)||i.set(t.bookmaker,S({},t)),Array.from(i.values()).sort((s,n)=>this.compareSportsbookOptions(s,n))}betsShareMarket(e,t){return e.type===t.type&&e.bet===t.bet&&this.getBetLineKey(e)===this.getBetLineKey(t)}compareSportsbookOptions(e,t){return e.edge!==t.edge?t.edge-e.edge:e.bookmaker.localeCompare(t.bookmaker)}getCanonicalBetKey(e,t){return[e.MatchData?.SIMatchID||"",t.type||"",t.bet||"",this.getBetLineKey(t)].join("|")}getBetLineKey(e){return[this.normaliseLineValue(e.line??e.lineValue),this.normaliseLineValue(e.markValue)].join("|")}normaliseLineValue(e){return e==null?"":String(e)}getDisplayableValuePlays(e,t=!1){return this.valuePlays.map(i=>this.createScopedValuePlay(i,e,t)).filter(i=>!!i).filter(i=>this.meetsBestBetEdgeThreshold(i)).filter(i=>this.fitsValuePlaysFilter(i)).sort((i,s)=>this.sortValuePlays(i,s))}meetsBestBetEdgeThreshold(e){return e.edge>this.bestBetMinEdge}createScopedValuePlay(e,t,i){if(i)return k(S({},e),{bestOddsOption:e.bestOddsOption,isBestOdds:!0});let s=(e.sportsbookOptions||[]).filter(r=>t.includes(r.bookmaker));if(s.length===0)return null;let n=[...s].sort((r,v)=>this.compareSportsbookOptions(r,v))[0];return k(S(S({},e),n),{match:e.match,sportsbookOptions:e.sportsbookOptions,bestOddsOption:e.bestOddsOption,isBestOdds:this.isBestOddsOption(n,e),canonicalKey:e.canonicalKey})}isBestOddsOption(e,t){return e.bookmaker===t.bookmaker||e.odds===t.odds&&e.edge===t.edge&&this.getBetLineKey(e)===this.getBetLineKey(t)}sortValuePlays(e,t){return this.betSort==="date"?te(e.match.MatchData.UserDate,t.match.MatchData.UserDate):this.betSort==="-date"?te(t.match.MatchData.UserDate,e.match.MatchData.UserDate):this.betSort==="winprob"?t.winProb-e.winProb:this.betSort==="-winprob"?e.winProb-t.winProb:this.betSort==="edge"?t.edge-e.edge:this.betSort==="-edge"?e.edge-t.edge:t.edge-e.edge}indefinitePrefix(e){return/^(8|11|18)$/.test(e)?"an":"a"}fitsValuePlaysFilter(e){let t=!1;return this.betsSearch!==""?e.match.MatchData.Sport.toLowerCase()==="ten"?t=e.match.MatchData.PlayerData&&re(this.betsSearch,[e.match.MatchData.PlayerData.player1?.name,e.match.MatchData.PlayerData.player2?.name]):t=re(this.betsSearch,[e.match.MatchData.HomeTeam?.Abv,e.match.MatchData.HomeTeam?.Market,e.match.MatchData.HomeTeam?.Nickname,e.match.MatchData.AwayTeam?.Abv,e.match.MatchData.AwayTeam?.Market,e.match.MatchData.AwayTeam?.Nickname]):t=!0,!(!t||!(this.filterBetTypes.includes(e.type)||this.filterBetTypes.includes("other")&&["firstset"].includes(e.type))||!this.filterSports.includes(e.match.MatchData.Sport.toUpperCase())||!this.matchService.isUpcoming(e.match)||it(e.match.MatchData.UserDate,new Date)>this.filterTimeframe||this.maxEdgeFilter&&this.minEdgeFilter&&!(e.edge<=this.maxEdgeFilter&&e.edge>=this.minEdgeFilter)||this.selectedTags.length>0&&!this.tagsFilterOption.filter(n=>this.selectedTags.includes(n.key)).some(n=>n.condition(e)))}openProModal(){let e={event:"pro_modal_appearance",event_category:"insert-banner"};this.gtmTrackingService.pushTagAndNavigate(e),this.blogService.setProModalData(!0)}openModalIfNotPro(){this.proUser$.pipe(x(this.destroy$)).subscribe(e=>{if(!e){let t={event:"pro_modal_appearance",event_category:"search-bar"};this.gtmTrackingService.pushTagAndNavigate(t),this.blogService.setProModalData(!0)}})}openFilter(){this.mobileFilterOpen=!0}setFilterEdge=(e=null,t=null)=>{this.minEdgeFilter=e,this.maxEdgeFilter=t,this.resetDisplayLimits(),this.setDisplayedValuePlays()};onTagsChange(e){this.selectedTags=e,this.resetDisplayLimits(),this.setDisplayedValuePlays()}sweetSpotQueryApplied=!1;applySweetSpotQueryParam(){this.sweetSpotQueryApplied||this.route.snapshot.queryParamMap.get("tag")!=="sweet-spot"||this.sweetSpotRules.length===0||this.proUser$.pipe(x(this.destroy$)).subscribe(t=>{t&&!this.sweetSpotQueryApplied&&(this.sweetSpotQueryApplied=!0,this.onTagsChange(["sweet-spot"]))})}updateCautionTagLogic(){let e=this.tagsFilterOption.find(t=>t.key==="caution");e&&this.warningRules.length>0&&(e.condition=t=>this.warningRules.some(i=>{if(!(i.sport===t.match?.MatchData?.Sport))return!1;let n=i.market==="totals"?"total":i.market;if(t.type!==n)return!1;let r=t.edge,v=i.min_range*100,T=i.max_range?i.max_range*100:1/0;return r>=v&&r<=T}))}updateSweetSpotTagLogic(){let e=this.tagsFilterOption.find(n=>n.key==="sweet-spot"),t=this.tagsFilterOption.find(n=>n.key==="top-picks"),i=n=>this.sweetSpotRules.some(r=>{let v=r.market==="totals"?"total":r.market;if(!(r.sport===n.match?.MatchData?.Sport))return!1;let M=!1;if((n.type===v||"prop_name"in n&&n.prop_name===r.market)&&(M=!0),M){let P=n.edge,Dt=r.min_range*100,Ot=r.max_range?r.max_range*100:1/0;return P>=Dt&&P<=Ot}return!1}),s=n=>"betValue"in n&&n.betValue===100;this.sweetSpotRules.length>0&&(e&&(e.condition=n=>
1i(n)),t&&(t.condition=n=>i(n)&&s(n)),!this.valuePlaysLoading&&this.valuePlays.length>0&&this.setDisplayedValuePlays())}static \u0275fac=function(t){return new(t||o)(ye(ut,8))};static \u0275cmp=U({type:o,selectors:[["app-value-bets-block"]],viewQuery:function(t,i){if(t&1&&ke(Et,5)(Lt,5)(Ft,5),t&2){let s;$(s=N())&&(i.blockBody=s.first),$(s=N())&&(i.otherBetsSection=s.first),$(s=N())&&(i.emptyStatePicker=s.first)}},hostBindings:function(t,i){t&1&&C("click",function(n){return i.checkForInternalLinkClick(n)})},inputs:{showFilter:"showFilter",sports:"sports"},features:[ue],decls:18,vars:29,consts:[["blockBody",""],["emptyStatePicker",""],["otherBetsSection",""],[1,"external-value-bets"],[1,"flex","flex-col","sm:flex-row","sm:items-center","sm:gap-2.5","flex-wrap"],[1,"value-bets-list","mt-4"],["type","bet-row",3,"lines"],[1,"bets-placeholder"],[1,"show-more-ctr"],[1,"mt-6"],["shadow","none"],[3,"filterSportsChange","filterBetTypesChange","mobileFilterOpenChange","selectedTagsChange","filterSports","valueBetsSports","filterBetTypes","setFilterTimeframe","displayedValuePlays","filterTimeframe","toggleFilterBetType","toggleAllFilterBetType","toggleFilterSport","toggleAllFilterSports","mobileFilterOpen","maxEdge","minEdge","minEdgeFilter","maxEdgeFilter","setFilterEdge","tagsList","selectedTags"],["placeholder","Search for a team",1,"order-1","max-sm:mb-2.5",3,"valueChange","focusin","value","readonly"],[1,"mobile-filters","order-3","sm:order-2"],[1,"flex","gap-2"],[1,"flex","max-sm:w-1/2","justify-between","h-9","bg-white","px-2","sm:px-4","py-2","text-gray-900","gap-2.5","sm:gap-3","items-center","shadow","shadow-slate-300","hover:bg-slate-200","rounded","text-sm","font-medium","whitespace-nowrap",3,"click"],["aria-hidden","true",3,"icon"],["mobileSheetTitle","Sort by","listMaxHeightClass","max-h-[350px]","placeholder","Sort by",1,"flex-auto","max-sm:w-1/2","sm:min-w-[290px]",3,"valueChange","options","value","searchable","triggerLabel","compactTriggerLabel","leadingIcon"],[1,"last-updated","text-xs","order-4","sm:order-3","mt-2","sm:ml-auto"],[1,"lu-time"],[1,"error-main"],[1,"retry-link",3,"click"],[1,"my-3","flex","min-h-32","flex-col","items-center","justify-center","rounded-md","border","border-dashed","border-slate-400","px-4","py-8","text-center"],[1,"flex","flex-wrap","items-center","gap-x-3","gap-y-2","body-text-small-primary","sm:body-text-medium-primary","font-medium","sm:font-semibold"],[1,"text-base","font-bold","text-gray-950"],[1,"mt-2","max-w-md","text-sm","text-gray-600"],["type","button",1,"mt-4","inline-flex","h-10","items-center","justify-center","rounded-md","bg-highlight-100","px-5","text-sm","font-semibold","text-white","shadow-sm","transition","hover:bg-highlight-100/80",3,"click"],[3,"hideTrigger"],[1,"flex","flex-wrap","items-center","gap-1","sm:gap-2","sm:contents"],[1,"rounded","bg-gray-200","px-2","py-1","body-text-xsmall-primary","sm:body-text-small-primary","font-medium","sm:font-semibold"],[3,"bareTrigger"],["type","button",1,"inline-flex","h-9","w-full","sm:ml-auto","sm:w-auto","items-center","justify-center","gap-2","rounded-full","border","border-slate-300","bg-white","px-3","text-xs","sm:text-sm","font-semibold","text-gray-950","shadow-sm","transition","hover:bg-slate-50"],["type","button",1,"inline-flex","h-9","w-full","sm:ml-auto","sm:w-auto","items-center","justify-center","gap-2","rounded-full","border","border-slate-300","bg-white","px-3","text-xs","sm:text-sm","font-semibold","text-gray-950","shadow-sm","transition","hover:bg-slate-50",3,"click"],[1,"flex","shrink-0","items-center"],["width","20","height","20","loading","lazy",1,"-ml-1","first:ml-0","h-5","w-5","rounded-full","border","border-white","bg-white","object-contain",3,"src","alt"],[1,"-ml-1","inline-flex","h-5","min-w-5","items-center","justify-center","rounded-full","border","border-slate-300","bg-slate-100","px-1","text-[10px]","font-bold","leading-none","text-gray-900"],[1,"bet-gate-slot",2,"min-height","129px"],["ngSkipHydration","",1,"value-bet",3,"play","proOnly"],["customClasses","pro-banner w-full flex flex-col sm:flex-row justify-center sm:justify-between items-center gap-2.5 cursor-pointer",3,"padded","showBackgroun
1d"],["customClasses","pro-banner w-full flex flex-col sm:flex-row justify-center sm:justify-between items-center gap-2.5 cursor-pointer",3,"click","padded","showBackground"],["src","https://imgix.cosmicjs.com/b267e050-dab2-11ee-a698-6f33e3e4a628-Best-Bets-icon.svg?auto=format","alt","","height","80","width","80","loading","lazy",1,"hidden","md:flex","h-20","w-20"],[1,"sm:flex-1","flex","items-center","justify-center","flex-col"],[1,"text-lg","font-semibold"],[1,"text-2xl","font-bold"],[1,"pro-button-group"],[1,"pro-button"],[1,"normal-case"],["aria-hidden","true"],[1,"show-more-btn",3,"click"],["customClasses","bg-gray-100 flex flex-col gap-2",3,"showBackground","overflow"],[1,"flex","flex-col","gap-3","sm:flex-row","sm:items-center","sm:justify-between"],[1,"font-bold","text-gray-950"],[1,"rounded-md","bg-slate-200","px-2","py-1","text-sm","font-black","text-gray-950"],["type","button",1,"btn-small-outline",3,"click"],[1,"text-sm",3,"icon"]],template:function(t,i){if(t&1){let s=B();p(0,"div",3,0),Pe(2),V(3,"async"),u(4,Ut,10,10,"div",4),p(5,"div",5),u(6,Rt,1,1,"app-skeleton",6),u(7,Ht,8,1,"div",7),u(8,jt,2,1,"div",7),u(9,$t,2,1,"div",7),u(10,Jt,2,1),H(11,ai,2,1,null,null,i.trackValuePlay,!0),u(13,ri,3,0,"div",8),u(14,ci,14,9,"div",9),l(),f(15,"app-bookie-logo-row",10),l(),p(16,"app-best-bet-mobile-filter",11),J("filterSportsChange",function(r){return y(s),E(i.filterSports,r)||(i.filterSports=r),_(r)})("filterBetTypesChange",function(r){return y(s),E(i.filterBetTypes,r)||(i.filterBetTypes=r),_(r)})("mobileFilterOpenChange",function(r){return y(s),E(i.mobileFilterOpen,r)||(i.mobileFilterOpen=r),_(r)}),C("selectedTagsChange",function(r){return i.onTagsChange(r)}),l(),f(17,"app-tags-help-popup")}t&2&&(a(2),Ve(L(3,26,i.proUser$)),a(2),h(!i.valuePlaysLoading&&!i.valuePlaysError&&i.showFilter?4:-1),a(2),h(i.valuePlaysLoading&&!i.valuePlaysError?6:-1),a(),h(i.valuePlaysError?7:-1),a(),h(!i.valuePlaysLoading&&!i.valuePlaysError&&i.valuePlays.length===0?8:-1),a(),h(!i.valuePlaysLoading&&!i.valuePlaysError&&i.valuePlays.length>0&&i.displayedValuePlays.length===0&&(i.isAllSportsbooksSelected()||i.otherAvailableBets===0)?9:-1),a(),h(!i.valuePlaysLoading&&!i.valuePlaysError&&i.valuePlays.length>0&&i.totalAvailableBets>0?10:-1),a(),j(i.displayedValuePlays),a(2),h(i.showMorePreferredVisible?13:-1),a(),h(!i.isAllSportsbooksSelected()&&i.otherAvailableBets>0?14:-1),a(2),O("filterSports",i.filterSports),g("valueBetsSports",i.valueBetsSports),O("filterBetTypes",i.filterBetTypes),g("setFilterTimeframe",i.setFilterTimeframe)("displayedValuePlays",i.currentAvailableBets)("filterTimeframe",i.filterTimeframe)("toggleFilterBetType",i.toggleFilterBetType)("toggleAllFilterBetType",i.toggleAllFilterBetType)("toggleFilterSport",i.toggleFilterSport)("toggleAllFilterSports",i.toggleAllFilterSports),O("mobileFilterOpen",i.mobileFilterOpen),g("maxEdge",i.maxEdge)("minEdge",i.minEdge)("minEdgeFilter",i.minEdgeFilter)("maxEdgeFilter",i.maxEdgeFilter)("setFilterEdge",i.setFilterEdge)("tagsList",i.tagsFilterOption)("selectedTags",i.selectedTags))},dependencies:[q,Ue,ae,Bt,Ct,St,st,wt,W,oe,gt,X,at,dt],styles:[`@keyframes flash{to{visibility:hidden}}.external-value-bets{display:flex;box-sizing:border-box;flex-direction:column;justify-content:flex-start;align-items:stretch;font-family:Work Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif;font-weight:400;max-width:100%;margin:0 auto;padding:4px 0}.external-value-bets *{box-sizing:border-box}.external-value-bets .value-bets-notes{color:#100d2c}.external-value-bets .value-bets-notes .last-updated .lu-time{color:#627087}.external-value-bets .value-bets-list{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:8px}.external-value-bets .value-bets-list .bets-placeholder{height:100px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:20px;font-size:16px}.external-value-bets .value-bets-list .bets-placeholder .animated-ellipsis .dot{animation:flash .6s steps(3,start) infinite}.external-value-bets .value-bets-list .bets-placeholder .animated-ellipsis .dot.dot1{animation-delay:0s}.external-value-bets .value-bets-list .bets-placeholder .animated-ellipsis .dot.dot2{animation-delay:.2s}.external-value-bets .value-bets-list .bets-placeholder .animated-ellipsis .dot.dot3{animation-delay:.4s}.external-value-bets .value-bets-list .bets-placeholder .error-main{font-weight:500;margin-bottom:3px}.external-value-bets .value-bets-list .bets-placeholder .retry-link{color:#1d4ed8;cursor:pointer}.external-value-bets .value-bets-list .bets-placeholder .retry-link:hover{text-decoration:underline}.external-value-bets .value-bets-list .pro-banner{background:linear-gradient(to bottom,#edf0f3,#fff);min-height:129px;text-align:center;padding:20px;background-origin:border-box}.external-value-bets .value-bets-list .pro-banner:hover{border-color:#979797}@media screen and (max-width:1450px){.external-value-bets .value-bets-list .pro-banner{padding:20px 10px}}@media screen and (max-width:1250px){.external-value-bets .value-bets-list .pro-banner{min-height:158px}}.external-value-bets .value-bets-list .pro-banner .pro-button{border:1px solid #1d4ed8;background-color:#1d4ed8;color:#fff;display:flex;height:2.5rem;cursor:pointer;align-items:center;justify-content:center;padding:.5rem 1rem;text-align:center;font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:capitalize;border-radius:4px;transition:background-color .2s linear,color .2s linear,box-shadow .2s linear;text-decoration:none}.external-value-bets .value-bets-list .pro-banner .pro-button:hover{background-color:#6f90ec;box-shadow:0 0 4px #e0e0e0}.external-value-bets .value-bets-list .pro-banner .pro-button-group{dis
1play:flex;flex-direction:column;align-items:center;gap:8px}.external-value-bets .value-bets-list .pro-banner .pro-button-subtext{font-size:14px;line-height:20px;font-weight:600;color:#100d2c;text-align:center}.external-value-bets .value-bets-list .show-more-ctr{display:flex;flex-direction:column;justify-content:center;align-items:stretch}.external-value-bets .value-bets-list .show-more-ctr .show-more-btn{padding:15px;cursor:pointer;font-size:14px;text-align:center;color:#fff;background-color:#100d2c;transition:background-color .2s linear;border-radius:4px}.external-value-bets .value-bets-list .show-more-ctr .show-more-btn:hover{background-color:#1e1953}@media screen and (max-width:1250px){.external-value-bets{padding:5px}}@media screen and (max-width:650px){.external-value-bets{padding:5px 0}}.external-value-bets .tags-dropdown-btn .options{visibility:hidden;position:absolute;overflow-y:auto;margin:10px 0 0;border-radius:4px;background:#fff;box-shadow:0 0 10px #e0e0e0;animation-name:fadeInDown;-webkit-animation-name:fadeInDown;animation-duration:.2s;animation-fill-mode:both;-webkit-animation-duration:.2s;-webkit-animation-fill-mode:both}.external-value-bets .tags-dropdown-btn.active .options{visibility:visible;opacity:0;z-index:10;animation-name:fadeInUp;-webkit-animation-name:fadeInUp;animation-duration:.2s;animation-fill-mode:both;-webkit-animation-duration:.2s;-webkit-animation-fill-mode:both}@keyframes fadeInDown{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,20px,0);opacity:0}}@keyframes fadeInUp{0%{transform:translate3d(0,30px,0);opacity:0}to{transform:translateZ(0);opacity:1}}.external-value-bets .bet-tags .info-tooltip,.external-value-bets .high-value-info.info-tooltip{position:relative}.external-value-bets .bet-tags .info-tooltip:hover .tooltip-body,.external-value-bets .high-value-info.info-tooltip:hover .tooltip-body{display:block;pointer-events:visible}.external-value-bets .bet-tags .info-tooltip .tooltip-body,.external-value-bets .high-value-info.info-tooltip .tooltip-body{display:none;pointer-events:none;position:absolute;bottom:100%;z-index:2;padding:12px;font-weight:400;font-size:14px;margin-bottom:2px} 2`],encapsulation:2,changeDetection:0})}return o})();function di(o,d){if(o&1&&f(0,"app-page-intro-copy",5),o&2){let e=c();g("html",e.trustedDesc)}}function mi(o,d){if(o&1&&f(0,"app-value-bets-block",7),o&2){let e=c();g("sports",e.valueBetsSports)}}function ui(o,d){o&1&&f(0,"app-skeleton",8),o&2&&g("lines",8)}function hi(o,d){if(o&1&&f(0,"app-reasons-to-trust",11),o&2){let e=c();g("reasonsToTrust",e.reasonsToTrust)}}function gi(o,d){if(o&1&&f(0,"div",12),o&2){let e=c();g("innerHTML",e.trustedCopy,fe)}}function fi(o,d){if(o&1&&f(0,"app-faq-section",14),o&2){let e=c();g("faqSection",e.faqSection)}}var Vt=(()=>{class o{metaSetter=b(pt);localisationService=b(z);blogService=b(K);sanitiser=b(Fe);destroyRef=b(me);title="Best Sports Bets Today";trustedDesc;trustedCopy;reasonsToTrust=null;faqSection;valueBetsSports=this.localisationService.sportPrioritySort(Ze).filter(e=>e.valueSummaryEligible).map(e=>e.code);ngOnInit(){this.retrieveAndSetMetadata()}retrieveAndSetMetadata(){this.blogService.getAppSettings("quick-picks").pipe(Ie(this.destroyRef)).subscribe(e=>{this.postMetaFetch(e)},()=>{this.title="Best Sports Bets Today",this.reasonsToTrust=null,this.metaSetter.setMeta({title:"Dimers",description:"No more watching from the sidelines. Dimers gives sports fans the news, tools & analysis to Make the Play.",metaImageURL:"https://cdn.ciphersports.io/images/dimers-site/generic_meta.jpeg",canonicalURL:"https://www.dimers.com/best-bets",structuredData:se({pageCode:"best-bets",pageUrl:"https://www.dimers.com/best-bets",fallbackTitle:"Best Sports Bets Today"})})})}postMetaFetch(e){this.title=ft(e.page_title,"Best Sports Bets Today"),this.metaSetter.setMeta({title:e.app_title,seoTitle:e.seo_title,description:e.seo_description,metaImageURL:e.thumbnail?.url||"https://cdn.ciphersports.io/images/dimers-site/generic_meta.jpeg",canonicalURL:"https://www.dimers.com/best-bets",structuredData:[se({pageCode:"best-bets",pageUrl:"https://www.dimers.com/best-bets",fallbackTitle:"Best Sports Bets Today",settings:e}),{"@context":"https://schema.org","@type":"HowTo",name:e.app_title||"Best Bets - Value Sports Betting Picks",description:e.seo_description||"Find the best value betting opportunities with data-driven analysis",image:"https://cdn.ciphersports.io/images/dimers-site/generic_meta.jpeg",totalTime:"PT15M",supply:[{"@type":"HowToSupply",name:"Sports Betting Bankroll"},{"@type":"HowToSupply",name:"Statistical Analysis Tools"}],tool:[{"@type":"HowToTool",name:"Multiple Sportsbook Accounts"},{"@type":"HowToTool",name:"Odds Comparison Tools"}],step:[{"@type":"HowToStep",name:"Identify Value Opportunities",text:"Use statistical models to find bets where the odds offer better value than the true probability",position:1},{"@type":"HowToStep",name:"Research Match Context",text:"Analyze injuries, weather, historical performance, and other factors affecting the outcome",position:2},{"@type":"HowToStep",name:"Compare Across Sportsbooks",text:"Shop for the best odds to maximize value on identified opportunities",position:3},{"@type":"HowToStep",name:"Bankroll Management",text:"Apply proper stake sizing based on confidence level and bankroll size",position:4}],publisher:lt}]}),this.trustedDesc=ne(this.sanitiser,e.app_page_subheader),this.trustedCopy=ne(this.sanitiser,e.subheading_description),this.reasonsToTrust=e.reasons_to_trust?.enabled?e.reasons_to_trust:null,this.faqSection=e.faq_section}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=U({type:o,selectors:[["app-value-summary-page"]],decls:18,vars:6,consts:[[1,"value-summary-page-content"],[1,"full-column"],[1,"page-description"],[1,"flex","gap-2","justify-between","items-center"],[1,"page-title"],[3,"html"],["tool","best-bets"],[3,"sports"],["type","bet-row",3,"lines"],[1,"main-column"],[1,"mt-6"],["headingId","reasons-to-trust-best-bets-title",3,"reasonsToTrust"],[1,"value-summary-desc",3,"innerHTML"],[1,"sidebar"],[1,"faq-full",3,"faqSection"]],template:function(t,i){t&1&&(p(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"h1",4),m(5),l()(),u(6,di,1,1,"app-page-intro-copy",5),f(7,"app-best-bets-props-banner",6),l(),u(8,mi,1,1,"app-value-bets-block",7)(9,ui,1,1,"app-skeleton",8),l(),p(10,"div",9),f(11,"app-dimers-business-card",10)(12,"app-best-offers"),u(13,hi,1,1,"app-reasons-to-trust",11),u(14,gi,1,1,"div",12),l(),p(15,"div",13),f(16,"app-standard-sidebar"),l(),u(17,fi,1,1,"app-faq-section",14),l()),t&2&&(a(5),D(i.title),a(),h(i.trustedDesc?6:-1),a(2),h(i.valueBetsSports?8:9),a(5),h(i.reasonsToTrust?13:-1),a(),h(i.trustedCopy?14:-1),a(3),h(!(i.faqSection==null||i.faqSection.questions==null)&&i.faqSection.questions.length?17:-1))},dependencies:[q,yt,Pt,xt,ht,kt,W,_t,bt,vt],styles:["[_nghost-%COMP%]{display:block;overflow-x:hidden}.value-summary-page-content[_ngcontent-%COMP%]{max-width:1270px;margin:0 auto;padding:0 10px;width:100%;display:grid;grid-template-columns:repeat(12,1fr);gap:30px;grid-auto-flow:row;align-content:start}@media screen and (max-width:850px){.value-summary-page-content[_ngcontent-%COMP%]{gap:30px 10px}}.value-summary-page-content[_ngcontent-%COMP%] .main-column[_ngcontent-%COMP%]{grid-column-start:1;grid-column-end:span 9;display:grid;grid-template-columns:100%;gap:30px;grid-auto-flow:row;align-content:start;max-width:100%}@media screen and (max-width:1250px){.value-summary-page-content[_ngcontent-%COMP%] .main-column[_ngcontent-%COMP%]{grid-column-start:1;grid-column-end:span 8}}@media screen and (max-width:1030px){.value-summary-page-content[_ngcontent-%COMP%] .main-column[_ngcontent-%COMP%]{grid-column-start:1;grid-column-end:span 12}}.value-summary-page-content[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%]{grid-column-start:10;grid-column-end:span 3;display:grid;grid-template-columns:100%;gap:30px;grid-auto-flow:row;align-content:start;max-width:100%}@media screen and (max-width:1250px){.value-summary-page-content[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%]{grid-column-start:9;grid-column-end:span 4}}@media screen and (max-width:1030px){.value-summary-page-content[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%]{grid-column-start:1;grid-column-end:span 12}}.value-summary-page-content[_ngcontent-%COMP%] .narrow-main-column[_ngcontent-%COMP%]{grid-column-start:4;grid-column-end:span 6;display:grid;grid-template-columns:100%;gap:30px;grid-auto-flow:row;align-content:start;max-width:100%}@media screen and (max-width:1250px){.value-summary-page-content[_ngcontent-%COMP%] .narrow-main-column[_ngcontent-%COMP%]{grid-column-start:1;grid-column-end:span 8;grid-row:1}}@media screen and (max-width:1030px){.value-summary-page-content[_ngcontent-%COMP%] .narrow-main-column[_ngcontent-%COMP%]{grid-column-start:1;grid-column-end:span 12}}.value-summary-page-content[_ngcontent-%COMP%] .left-flank[_ngcontent-%COMP%]{grid-column-start:1;grid-column-end:span 3;display:grid;grid-template-columns:100%;gap:30px;grid-auto-flow:row;align-content:start;max-width:100%}@media screen and (max-width:1250px){.value-summary-page-content[_ngcontent-%COMP%] .left-flank[_ngcontent-%COMP%]{grid-column-start:1;grid-column-end:span 8;grid-row:2}}@media screen and (max-width:1030px){.value-summary-page-content[_ngcontent-%COMP%] .left-flank[_ngcontent-%COMP%]{grid-column-start:1;grid-column-end:span 12}}.value-summary-page-content[_ngcontent-%COMP%] .right-flank[_ngcontent-%COMP%]{grid-column-start:10;grid-column-end:span 3;display:grid;grid-template-columns:100%;gap:30px;grid-auto-flow:row;align-content:start;max-width:100%}@media screen and (max-width:1250px){.value-summary-page-content[_ngcontent-%COMP%] .right-flank[_ngcontent-%COMP%]{grid-column-start:9;grid-column-end:span 4}}@media screen and (max-width:1030px){.value-summary-page-content[_ngcontent-%COMP%] .right-flank[_ngcontent-%COMP%]{grid-column-start:1;grid-column-end:span 12}}.value-summary-page-content[_ngcontent-%COMP%] .full-column[_ngcontent-%COMP%]{grid-column-start:1;grid-column-end:span 12;display:grid;grid-template-columns:100%;gap:30px;grid-auto-flow:row;align-content:start;max-width:100%}@media screen and (max-width:850px){.value-summary-page-content[_ngcontent-%COMP%]{padding:0 20px}}.value-summary-page-content[_ngcontent-%COMP%] .faq-full[_ngcontent-%COMP%]{display:block;grid-column:1/-1;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}@media screen and (max-width:1030px){.value-summary-page-content[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%]{order:1}}.page-description[_ngcontent-%COMP%] .page-title[_ngcontent-%COMP%]{font-weight:700;font-size:36px;line-height:40px;color:#333;margin:0}@media screen and (max-width:850px){.page-description[_ngcontent-%COMP%] .page-title[_ngcontent-%COMP%]{font-weight:600;line-height:32px;font-size:24px;min-height:32px}}.page-description[_ngcontent-%COMP%]{margin:0}.value-summary-desc[_ngcontent-%COMP%]{font-weight:400;font-size:16px;line-height:24px;margin-top:12px;color:#100d2c}.value-summary-desc[_ngcontent-%COMP%] .note[_ngcontent-%COMP%]{font-size:14px;display:inline-block;margin-top:5px}.value-summary-desc[_ngcontent-%COMP%] .note[_ngcontent-%COMP%] .note-title[_ngcontent-%COMP%]{font-weight:500;color:#100d2c}.value-summary-desc[_ngcontent-%COMP%]{margin-top:0}"]})}return o}
2)();var bi=[{path:"",component:Vt},{path:"",redirectTo:"",pathMatch:"full"},{path:":sport",component:Tt}],Mt=(()=>{class o{static \u0275fac=function(t){return new(t||o)};static \u0275mod=R({type:o});static \u0275inj=I({imports:[Y.forChild(bi),Y]})}return o})();var Ho=(()=>{class o{static \u0275fac=function(t){return new(t||o)};static \u0275mod=R({type:o});static \u0275inj=I({imports:[Mt]})}return o})();export{Ho as ValueSummaryModule};
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.