1"use strict";(globalThis.webpackChunkswrc_plugin=globalThis.webpackChunkswrc_plugin||[]).push([[561],{397:(e,s,t)=>{t.d(s,{s:()=>o});var a=t(695),r=t(369);const o='<svg preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M0 4a4 4 0 0 1 4-4h24a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4z" fill="transparent"/>\n<rect x="23.424" y="10.697" width="18" height="3" rx="1" transform="rotate(135 23.424 10.697)" fill="currentColor"/>\n<rect x="21.303" y="23.425" width="18" height="3" rx="1" transform="rotate(-135 21.303 23.425)" fill="currentColor"/>\n</svg>';Object.getOwnPropertyDescriptor;let l=class extends a.s{_closeDialog(){this.closest("dialog").close()}render(){return this.closest("dialog")?a.x`<form 2 method="dialog" 3 class="p-6 flex justify-center gap-4 flex-col relative z-20 bg-base-100 font-bold text-sm rounded-lg"> 4 <div class="flex justify-between items-center"> 5 <h4 class="text-xl font-bold">Odds Comparison</h4> 6 <button @click="${this._closeDialog}" class="w-6 h-6" autofocus>${(0,r.o)(o)}</button> 7 </div> 8 <slot name="header"></slot> 9 <p class="border-4 p-2 gap-2 flex items-center justify-center border-base-200 rounded-lg"> 10 <span class="w-2 h-2 bg-warning block rounded-full"></span> 11 Best Odds 12 </p> 13 <slot name="body"></slot> 14 </form> 15 <form @click="${this._closeDialog}" method="dialog" class="flex fixed top-0 left-0 w-full h-full"> 16 <button class="flex-1">close</button> 17 </form>`:a.A}};l=((e,s)=>{for(var t,a=s,r=e.length-1;r>=0;r--)(t=e[r])&&(a=t(a)||a);return a})([(0,a.e)("best-odds-dialog-content"),(0,a.a)(a.c)],l)},975:(e,s,t)=>{t.d(s,{B:()=>r,E:()=>l,H:()=>h,N:()=>n,O:()=>a,T:()=>c,a:()=>o,b:()=>d,c:()=>p,d:()=>i});const a={AMERICAN:"american",DECIMAL:"decimal",FRACTIONAL:"fractional"},r={moneyline:"Money",spread:"Spread",total:"Total"},o={NFL:4,MLB:9,NCAAF:4,NBA:4,NHL:3,NCAAB:2},l={NO_ODDS_DATA:"Oops, thereâs been a glitch in the sports matrix. Matchup details and odds for this game are not currently available.",NO_MATCHUP_DATA:"Matchup details are not currently available."},n="--",i={NFL:{"Pass YDs":1,"Pass TDs":1,INT:1,"Rush Yds":1,"Rush YDs":1,YPC:1,"Rush TDs":1,Rec:1,"Rec YDs":1,"Rec TDs":1},MLB:{"Batting Avg":3,"On Base %":3,"Home Runs":1,RBI:1,Record:1,ERA:2,WHIP:1},NBA:{"Points per Game":1,"Fieldgoal %":4,"Three point %":4,"Assists per Game":1,"Rebounds per Game":1,"Offensive Rebounds per Game":1,"Blocks per Game":1},NCAAB:{"Points per Game":1,"Fieldgoal %":1,"Three point %":1,"Assists per Game":1,"Rebounds per Game":1,"Offensive Rebounds per Game":1,"Blocks per Game":1},NCAAF:{"Pass YDs":1,"Pass TDs":1,INT:1,"Rush Yds":1,"Rush YDs":1,YPC:1,"Rush TDs":1,Rec:1,"Rec YDs":1,"Rec TDs":1},NHL:{Goals:1,Assists:1,Points:1,"Time on Ice":1,"Plus Minus":1,Record:1,"Save %":3,Shootouts:1}},d={NFL:{"Pass YDs":"Passing YPG","Pass TDs":"Passing TDs",INT:"INTs","Rush YDs":"Rushing YPG",YPC:"YPC","Rush TDs":"Rushing TDs",Rec:"Receptions PG","Rec YDs":"Rec YPG","Rec TDs":"Rec TDs"},NBA:{"Points per Game":"PPG","Fieldgoal %":"FG%","Three point %":"3P%","Assists per Game":"AST PG","Rebounds per Game":"REB PG","Offensive Rebounds per Game":"OREB PG","Blocks per Game":"BLK PG"},MLB:{"Batting Avg":"BA",RBI:"RBIs","On Base %":"OBP","Home Runs":"HRs",Record:"Record",ERA:"ERA",WHIP:"WHIP"},NCAAB:{"Points per Game":"Points per Game","Fieldgoal %":"Fieldgoal %","Three point %":"Three point %","Assists per Game":"Assists per Game","Rebounds per Game":"Rebounds per Game","Offensive Rebounds per Game":"Offensive Rebounds per Game","Blocks per Game":"Blocks per Game"},NCAAF:{"Pass YDs":"Passing YPG","Pass TDs":"Passing TDs",INT:"INT","Rush YDs":"Rushing YPG",YPC:"YPC","Rush TDs":"Rushing TDs",Rec:"Receptions PG","Rec YDs":"Rec YPG","Rec TDs":"Rec TDs"},NHL:{Goals:"Goals",Assists:"Assists",Points:"Points","Time on Ice":"TOI PG","Plus Minus":"+/-",Record:"Record","Save %":"Save %",Shootouts:"SO"}},c={MLB:["Batting Avg","Home Runs","Pitching"],NFL:["Passing","Rushing","Receiving"],NCAAF:["Passing","Rushing","Receiving"],NHL:["Goals","TOI","Goalie"],NBA:["Points","Assists","Rebounds"],NCAAB:["Points","Assists","Rebounds"]},h={NFL:{"Points Scored Per Game":1,"Yards Per Game":1,"Passing Yards Per Game":1,"Rushing Yards Per Game":1,Turnovers:0,"Points Allowed Per Game":1,"Yards Per Game Allowed":1,"Passing Yards Per Game Allowed":1,"Rushing Yards Per Game Allowed":1,"Turnovers Forced":0},MLB:{"Runs Per Game":1,"Hits Per Game":1,"Home Runs Per Game":1,"Batting Average":3,"On Base Percentage (OBP)":3,"Runs Against Per Game":1,"Earned Run Average (ERA)":2,"Batting Average Against":3,"Run Differential":0,"Base On Balls Per Game":1},NBA:{"Offensive Rating":1,"Points Per Game":1,"Assists Per Game":1,"Field Goal Percentage":4,"Three Point Percentage":4,"Defensive Rating":1,"Points Per Game Against":1,"Field Goals Against Percentage":4,"Three Point Field Goal Percentage":4,"Rebounds Plus/Minus":0},NCAAB:{"Offensive Rating":1,"Points Per Game":1,"Assists Per Game":1,"Field Goal Percentage":1,"Three Point Percentage":1,"Defensive Rating":1,"Points Per Game Against":1,"Field Goals Against Percentage":1,"Three Point Field Goal Percentage":1,"Reboun
17ds Plus/Minus":0},NCAAF:{"Points Scored Per Game":1,"Yards Per Game":1,"Passing Yards Per Game":1,"Rushing Yards Per Game":1,Turnovers:0,"Points Allowed Per Game":1,"Yards Per Game Allowed":1,"Passing Yards Per Game Allowed":1,"Rushing Yards Per Game Allowed":1,"Turnovers Forced":0},NHL:{"Goals Per Game":1,"Shots Per Game":1,"Power Play Percent":1,"Faceoff Win Percent":1,"Goals Against Per Game":1,"Shots Against Per Game":1,"Power Play Kill Percent":1,"Penalty Minutes Per Game":1,"Penalty Minutes Against Per Game":1}},p={NFL:{"Points Scored Per Game":"Points Per Game (PPG)","Yards Per Game":"Yards Per Game (YPG)","Passing Yards Per Game":"Passing Yards Per Game","Rushing Yards Per Game":"Rushing Yards Per Game",Turnovers:"Turnovers Committed","Points Allowed Per Game":"Points Per Game Allowed","Yards Per Game Allowed":"Yards Per Game Allowed","Passing Yards Per Game Allowed":"Passing Yards Per Game Allowed","Rushing Yards Per Game Allowed":"Rushing Yards Per Game Allowed","Turnovers Forced":"Turnovers Forced"},NBA:{"Offensive Rating":"Offensive Rating","Points Per Game":"Points Per Game","Assists Per Game":"Assists Per Game","Field Goal Percentage":"Field Goal %","Three Point Percentage":"3-Point %","Defensive Rating":"Defensive Rating","Points Per Game Against":"Points Per Game Allowed","Field Goals Against Percentage":"Field Goal % Allowed","Three Point Field Goal Percentage":"3-Point % Allowed","Rebounds Plus/Minus":"Rebound +/-"},MLB:{"Runs Per Game":"Runs Scored Per Game","Hits Per Game":"Hits Per Game","Home Runs Per Game":"Home Runs Per Game","Batting Average":"Batting Average","On Base Percentage (OBP)":"On-Base %","Runs against Per Game":"Runs Allowed Per Game","Earned Run Average (ERA)":"Team ERA","Batting Average Against":"Batting Average Allowed","Run Differential":"Run Differential","Base on balls Per Game":"Base on Balls Per Game"},NHL:{"Goals Per Game":"Goals Per Game","Shots per game":"Shots Per Game","Power Play Percent":"Power Play %","Faceoff Win Percent":"Faceoff Win %","Goals Against Per Game":"Goals Against Per Game","Shots against per game":"Shots Against Per Game","Power Play Kill Percent":"Penalty Kill %","Penalty Minutes Per Game":"Penalty Minutes Per Game","Penalty Minutes Against Per Game":"Penalty Minutes Drawn Per Game"},NCAAB:{"Offensive Rating":"Offensive Rating","Points Per Game":"Points Per Game","Assists Per Game":"Assists Per Game","Field Goal Percentage":"Field Goal %","Three Point Percentage":"3-Point %","Defensive Rating":"Defensive Rating","Points Per Game Against":"Points Per Game Allowed","Field Goals Against Percentage":"Field Goal % Allowed","Three Point Field Goal Percentage":"3-Point % Allowed","Rebounds Plus/Minus":"Rebound +/-"},NCAAF:{"Points Scored Per Game":"Points Per Game (PPG)","Yards Per Game":"Yards Per Game (YPG)","Passing Yards Per Game":"Passing Yards Per Game","Rushing Yards Per Game":"Rushing Yards Per Game",Turnovers:"Turnovers Committed","Points Allowed Per Game":"Points Per Game Allowed","Yards Per Game Allowed":"Yards Per Game Allowed","Passing Yards Per Game Allowed":"Passing Yards Per Game Allowed","Rushing Yards Per Game Allowed":"Rushing Yards Per Game Allowed","Turnovers Forced":"Turnovers Forced"}}},132:(e,s,t)=>{t.d(s,{e:()=>r});var a=t(695);function r(e){return(0,a.o)({finisher:(s,t)=>{Object.assign(s.prototype[t],e)}})}},465:(e,s,t)=>{t.d(s,{E:()=>o});var a=t(695);const r="operator_click",o=(e,s,t,o)=>a.x`<a href="${s}" @click="${e=>{const a={event:r,href:s,context:{...t}},o=new CustomEvent(r,{detail:a,bubbles:!0,composed:!0});e.currentTarget.dispatchEvent(o)}}" rel="nofollow" class="${o??a.A}">${e}</a>`},322:(e,s,t)=>{t.d(s,{I:()=>o});var a=t(695);const r="center/contain no-repeat;",o={icoSportsVar:`--ico-sports-svg: url("${(0,a.r)("data:image/svg+xml,%3csvg%20preserveAspectRatio='xMidYMid%20meet'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M13.623%2016.843c.089.09.179.179.29.268.045.045.09.09.157.135.112.09.224.156.359.224.045.022.112.067.179.09.134.066.269.134.403.178h.045c.067%200%20.112.045.18.068h.044c.134.044.291.09.426.134h.067c.067%200%20.112.022.179.045h.067c.067%200%20.157.022.224.045.067%200%20.157%200%20.224.022H17.587c.067%200%20.157%200%20.224-.022a.796.796%200%200%200%20.224-.045h.067c.067%200%20.112-.023.18-.045h.066c.157-.045.292
17-.067.426-.134h.045c.067%200%20.112-.045.179-.068h.045c.134-.044.268-.112.403-.179.067-.022.112-.067.18-.09.111-.067.245-.156.357-.223.045-.045.113-.09.157-.135.112-.09.202-.179.291-.268.359-.404.56-.852.56-1.344%200-1.479-1.769-2.666-3.964-2.666-2.195%200-3.965%201.187-3.965%202.666.046.918.202.963.56%201.344z'%20fill='currentColor'/%3e%3cpath%20d='M20.768%2017.671c-.03.03-.022.045-.044.09l-.068.067c-.022.022-.067.045-.112.09%200%200-.044.022-.067.044-.067.045-.112.09-.179.135-.873.604-2.038.918-3.27.918-1.232%200-2.374-.336-3.27-.918-.067-.045-.112-.09-.18-.135%200%200-.044-.022-.067-.045-.044-.022-.067-.044-.112-.09-.022%200-.044-.044-.067-.066-.022-.023-.067-.045-.09-.09l-.067-.067-.134-.134v.739c0%201.478%201.77%202.665%203.965%202.665s3.964-1.187%203.964-2.665v-.74l-.134.135-.068.067z'%20fill='currentColor'/%3e%3cg%20clip-path='url(%23obot0w6zxa)'%20fill='currentColor'%3e%3cpath%20d='M10.771%203.229c-.214-.214-1.286-.5-2.595-.357l2.953%202.952c.142-1.31-.143-2.38-.358-2.595zM3.2%2010.777c.238.239%201.404.477%202.81.262L2.913%207.944c-.215%201.405.047%202.595.262%202.81l.024.024zM7.033%203.086a6.017%206.017%200%200%200-2.476%201.476%206.006%206.006%200%200%200-1.358%202.286l3.93%203.93A6.006%206.006%200%200%200%209.413%209.42a5.77%205.77%200%200%200%201.477-2.476L7.033%203.086z'/%3e%3c/g%3e%3cg%20clip-path='url(%239daqxz9zdb)'%20fill='currentColor'%3e%3cpath%20d='M13.57%204.6a4.01%204.01%200%200%200-.713%201.93h1.539a3.845%203.845%200%200%200-.827-1.93zM15.244%206.53h1.309V2.832a4.28%204.28%200%200%200-2.434%201.125c.62.712%201.033%201.584%201.125%202.571zM21.19%206.53c-.068-.712-.344-1.378-.711-1.93a3.761%203.761%200%200%200-.827%201.93h1.538zM19.904%203.958a4.076%204.076%200%200%200-2.433-1.
17125V6.53h1.308a4.464%204.464%200%200%201%201.125-2.57zM20.455%209.376a4.01%204.01%200%200%200%20.712-1.928h-1.538c.092.734.39%201.377.826%201.928zM17.47%207.471v3.696a4.28%204.28%200%200%200%202.434-1.125c-.62-.712-1.033-1.584-1.125-2.571h-1.308zM12.834%207.471c.069.712.344%201.377.712%201.928a3.76%203.76%200%200%200%20.826-1.928h-1.538zM14.12%2010.042a4.076%204.076%200%200%200%202.433%201.125V7.471h-1.309a4.463%204.463%200%200%201-1.125%202.571z'/%3e%3c/g%3e%3cg%20clip-path='url(%23opswwgqn6c)'%20fill='currentColor'%3e%3cpath%20d='M10.417%2014.61a3.754%203.754%200%200%200%200%204.735%204.07%204.07%200%200%200%20.751-2.368c0-.888-.273-1.707-.751-2.368zM3.585%2014.61a4.07%204.07%200%200%200-.751%202.367c0%20.888.273%201.708.751%202.368a3.754%203.754%200%200%200%200-4.736z'/%3e%3cpath%20d='M9.869%2013.972a4.164%204.164%200%200%200-2.87-1.139%204.164%204.164%200%200%200-2.868%201.139A4.569%204.569%200%200%201%205.269%2017a4.613%204.613%200%200%201-1.138%203.028A4.164%204.164%200%200%200%207%2021.167a4.164%204.164%200%200%200%202.869-1.139A4.569%204.569%200%200%201%208.73%2017c0-1.161.433-2.209%201.139-3.028z'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='obot0w6zxa'%3e%3cpath%20fill='transparent'%20transform='translate(2%202)'%20d='M0%200h10v10H0z'/%3e%3c/clipPath%3e%3cclipPath%20id='9daqxz9zdb'%3e%3cpath%20fill='transparent'%20transform='translate(12%202)'%20d='M0%200h10v10H0z'/%3e%3c/clipPath%3e%3cclipPath%20id='opswwgqn6c'%3e%3cpath%20fill='transparent'%20transform='translate(2%2012)'%20d='M0%200h10v10H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e")}") ${r}`,icoCompareVar:`--ico-compare-svg: url("${(0,a.r)("data:image/svg+xml,%3csvg%20preserveAspectRatio='xMidYMid%20meet'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='10.5'%20y='21'%20width='13'%20height='3'%20rx='1'%20transform='rotate(-90%2010.5%2021)'%20fill='currentColor'/%3e%3crect%20x='4.5'%20y='21'%20width='10'%20height='3'%20rx='1'%20transform='rotate(-90%204.5%2021)'%20fill='currentColor'/%3e%3crect%20x='16.5'%20y='21'%20width='18'%20height='3'%20rx='1'%20transform='rotate(-90%2016.5%2021)'%20fill='currentColor'/%3e%3c/svg%3e")}") ${r}`}},561:(e,s,t)=>{t.r(s),t.d(s,{PlayerProps:()=>b});var a=t(695),r=t(715),o=t(775),l=t(132),n=t(975),i=t(397),d=t(369),c=(t(118),t(137)),h=t(490),p=t(322),u=t(465),g=Object.defineProperty,m=Object.getOwnPropertyDescriptor,P=Object.getPrototypeOf,f=Reflect.get,v=(e,s,t,a)=>{for(var r,o=a>1?void 0:a?m(s,t):s,l=e.length-1;l>=0;l--)(r=e[l])&&(o=(a?r(s,t,o):r(o))||o);return a&&o&&g(s,t,o),o};let b=class extends h.O{constructor(){super(...arguments),this._filtersData=null,this._gameProps=null,this._prop="",this._matchup="",this._userSearchFilterText="",this._compareDialogId="",this._fetchFiltersTask=new r.h(this,{task:async([e],{signal:s})=>{var t,a;this.validateProps();const o=(0,r.v)(e);let l=null;return o&&(l=await(await fetch(o,{signal:s})).json()),this._prop=(null==(t=null==l?void 0:l.props)?void 0:t[0].value)??"",this._matchup=(null==(a=null==l?void 0:l.matchups)?void 0:a[0].value)??"",this._filtersData=l,l},args:()=>[this.league]}),this._fetchGamePropsTask=new r.h(this,{task:async([e,s,t],{signal:a})=>{const o=(0,r.w)(e,{books:this.books.map((e=>e.name)).join(","),props:s,matchups:t});if(o&&s&&t){const e=await fetch(o,{signal:a});let s=null;if(s=await e.json(),(null==s?void 0:s.length)>0)return this._gameProps=s,s;throw Error("No gameprops data available")}return null},args:()=>[this.league,this._prop,this._matchup]}),this._renderOddsLabel=(e,s)=>e&&"-"!==e?s?`${s} ${e}`:e:n.N,this._handleChangeProp=e=>{this._compareDialogId="";const s=e.target;this._prop=s.value},this._handleFilterChange=e=>{const s=e.target,t=s.value,a=s.id;"matchup-filter"===a?this._matchup=t:"odds-format-filter"===a&&("american"===t||"decimal"===t||"fractional"===t)&&(this._oddsFormat=t)}}_renderTable(e){return a.x`<table class="text(sm center) h-px w-full border(separate spacing-0)"> 18 ${e} 19 </table>`}render(){return a.x`<div class="text-base-content bg-base-100 font-sans-bold"> 20 <dialog 21 class="p-0 w-[calc(100vw-2.5rem)] max-w-sm shadow-xl rounded-lg backdrop:bg-base-content/25" 22 id="compare-props-dialog"> 23 ${this._renderDialogContent()} 24 </dialog> 25 ${this._fetchFiltersTask.render({complete:e=>this._gameProps&&this._gameProps.length>0?this._renderFilters(e):a.A,pending:()=>this._renderPendingHtml(),error:()=>a.x`<slot name="fallback"></slot>`})} 26 ${this._fetchGamePropsTask.render({pending:()=>this._renderPendingHtml(),initial:()=>this._renderPendingHtml(),error:()=>{const e=a.x`${this._renderTableHead()} 27 <tbody> 28 <tr> 29 <td colspan="2" class="pt-4"> 30 <slot name="no-data"></slot> 31 </td> 32 </tr> 33 </tbody>`;return this._renderTable(e)}
33,complete:e=>{if(!e||0===(null==e?void 0:e.length))return a.A;const s=e.filter((e=>e.player.name.toLocaleLowerCase().includes(this._userSearchFilterText.toLowerCase()))),t=a.x` 34 ${this._renderTableHead()} 35 ${s.map(((e,s)=>a.x`${s===this.sponsoredOfferIndex?this._renderSponsoredOfferSlot():a.A} 36 ${this._renderTableBody(e,s)}`))} 37 ${s&&this.sponsoredOfferIndex>=s.length?this._renderSponsoredOfferSlot():a.A} 38 `;return this._renderTable(t)}})} 39 </div>`}_renderDialogContent(){var e,s;const t=null==(e=this._gameProps)?void 0:e.find((e=>e._id===this._compareDialogId));if(!t)return a.A;const{bestbet:o,player:l,name:n}=t;return a.x`<best-odds-dialog-content> 40 <div slot="header" class="flex(& col) gap-2 text(base base-300)"> 41 <div class="flex gap-2 items-center"> 42 <img 43 loading="lazy" 44 src="${(0,r.c)(this.league.toUpperCase(),l.code.toUpperCase())}" 45 class="rounded" 46 width="24" 47 height="24" 48 alt="${l.team} logo" /> 49 ${l.name} 50 </div> 51 <p class="text-sm font-normal capitalize">${n}</p> 52 </div> 53 <table slot="body" class="table-fixed font-normal w-full text-center"> 54 <tbody> 55 ${null==(s=null==t?void 0:t.sportsbooks)?void 0:s.map(((e,s)=>{var t,l,n,i,d,c,h,p,g,m;const P=this._renderOddsLabel(null==(l=null==(t=null==o?void 0:o.over)?void 0:t.odds)?void 0:l.over_points,"o"),f=this._renderOddsLabel(null==(i=null==(n=null==o?void 0:o.under)?void 0:n.odds)?void 0:i.under_points,"u"),v=this._renderOddsLabel(null==(c=null==(d=null==o?void 0:o.over)?void 0:d.odds)?void 0:c[`over_${this._oddsFormat}`]),b=this._renderOddsLabel(null==(p=null==(h=null==o?void 0:o.under)?void 0:h.odds)?void 0:p[`under_${this._oddsFormat}`]),A=e.name===o.over.name,G=e.name===o.under.name,x=null==(m=null==(g=this.books)?void 0:g[s])?void 0:m.clickUrl,w={brand:e.name,odds_format:this._oddsFormat,prop:this._prop};return a.x`<tr> 56 ${this._renderCompareDialogOddsCellClickout(P,v,A,x,w)} 57 <td class="w-14 pb-2"> 58 ${(0,u.E)(a.x`<img 59 class="rounded-full m-auto" 60 src="${(0,r.d)(e.name)}" 61 width="24" 62 height="24" 63 alt="${e.name} logo" 64 loading="lazy" />`,x,w)} 65 </td> 66 ${this._renderCompareDialogOddsCellClickout(f,b,G,x,w)} 67 </tr>`}))} 68 </tbody> 69 </table> 70 </best-odds-dialog-content>`}_renderCompareDialogOddsCellClickout(e,s,t,r,o){return a.x`<td class="pb-2"> 71 ${(0,u.E)(a.x`<div 72 class="${(0,a.b)("group flex(& col) rounded min-h-[52px] items-center justify-center border hover:(text-base-100 border-secondary bg-secondary) focus:outline-secondary",t?"border-warning border-2":"border-base-200")}"> 73 <span class="text-base-content group-hover:text-base-100">${e}</span> 74 <strong class="text-xs text-base-300 group-hover:text-base-100">${s}</strong> 75 </div>`,r,o)} 76 </td>`}_renderTableBodyOddsCellClickout(e,s){var t,o,l,n;const i=this.books.find((t=>t.name===e[s].name)),d=this._renderOddsLabel(null==(o=null==(t=null==e?void 0:e[s])?void 0:t.odds)?void 0:o[`${s}_points`],s[0]),c=this._renderOddsLabel(null==(n=null==(l=null==e?void 0:e[s])?void 0:l.odds)?void 0:n[`${s}_${this._oddsFormat}`]),h={brand:i.name,odds_format:this._oddsFormat,prop:this._prop};return(0,u.E)(a.x`<div 77 class="group min-h-[52px] flex gap-2 items-center justify-center rounded flex-1 cursor-pointer border(& base-200) hover:(text-base-100 border-secondary bg-secondary) focus:outline-secondary"> 78 <img 79 loading="lazy" 80 src="${(0,r.d)(i.name)}" 81 class="rounded-full" 82 width="24" 83 height="24" 84 alt="${i.name} logo" /> 85 <div class="flex flex-col"> 86 <span class="text-base-content group-hover:text-base-100">${d}</span> 87 <strong class="text-xs">${c}</strong> 88 </div> 89 </div>`,i.clickUrl,h)}_renderTableBody(e,s){const{start_time:t,_id:o,player:l,name:n,bestbet:i}=e;return a.x`<tbody class="text-base-300"> 90 <tr> 91 <td colspan="2" class="text-start border-base-200 pb-2 pt-3 ${0!==s?"border-t":""}"> 92 <time>${(0,c.Yq)(t,"MMMM d, h:mmaaa")}</time> 93 </td> 94 </tr> 95 <tr class="h-full"> 96 <th class="text-start"> 97 <div class="py-2 pr-4 flex flex-col gap-2 text-base"> 98 <img 99 loading="lazy" 100 src="${(0,r.c)(this.league.toUpperCase(),l.code.toUpperCase())}" 101 class="overflow-hidden rounded" 102 width="24" 103 height="24" 104 alt="${l.team} logo" /> 105 ${l.name}
106 <span class="capitalize font-normal text-sm">${n}</span> 107 </div> 108 </th> 109 <td class="h-px"> 110 <div class="flex h-full flex-col gap-1"> 111 ${this._renderTableBodyOddsCellClickout(i,"over")} 112 ${this._renderTableBodyOddsCellClickout(i,"under")} 113 </div> 114 </td> 115 </tr> 116 <tr> 117 <td></td> 118 <td> 119 <button 120 data-id="${o}" 121 @click="${this._handleCompareOdds}" 122 class="py-4 flex gap-1 mx-auto items-center font-bold hover:text-base-content"> 123 Compare Odds 124 <span style="mask: var(--ico-compare-svg);" class="bg-primary w-4 h-4"></span> 125 </button> 126 </td> 127 </tr> 128 </tbody>`}_handleCompareOdds(e){const s=e.target,t=this.renderRoot.querySelector("#compare-props-dialog"),a=null==s?void 0:s.getAttribute("data-id");t&&a&&(t.showModal(),this._compareDialogId=a)}_renderTableHead(){return this._filtersData?a.x`<thead class="sticky top-0 z-10"> 129 <tr class="bg-base-100"> 130 <th colspan="2"> 131 <select-dropdown 132 label="select prop" 133 selectClass="border-4 rounded-md capitalize" 134 class="mt-2 block" 135 _id="prop-select" 136 .selected="${this._prop}" 137 .options="${this._filtersData.props.map((({key:e,value:s})=>({label:e,value:s})))}" 138 .onChange="${this._handleChangeProp}"></select-dropdown> 139 </th> 140 </tr> 141 <tr class="bg-base-100"> 142 <th class="w-1/2 py-4 border-b border-base-200">Player</th> 143 <th class="w-1/2 py-4 border-b border-base-200">Best Odds</th> 144 </tr> 145 </thead>`:a.A}_handleUserSearchFilterInput(e){const s=e.target;this._userSearchFilterText=s.value}_renderUserFilterInput(){return a.x`<div class="flex rounded relative group overflow-hidden flex-1"> 146 <input 147 @input="${this._handleUserSearchFilterInput}" 148 .value=${this._userSearchFilterText} 149 placeholder="Filter Players..." 150 class="capitalize bg-base-100 border border-base-200 w-full font-bold flex-1 appearance-none rounded p-2 pr-8" /> 151 ${this._userSearchFilterText?a.x`<button 152 @click=${()=>this._userSearchFilterText=""} 153 class="z-10 right-3 absolute w-4 h-4 self-center"> 154 ${(0,d.o)(i.s)} 155 </button>`:a.x`<span class="pointer-events-none z-10 right-3 absolute w-4 h-4 self-center"> 156 ${(0,d.o)('<svg preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">\n <g clip-path="url(#jqcxzuf71a)">\n <path d="M10.388 7.687c0-.916-.324-1.698-.973-2.347a3.26 3.26 0 0 0-2.36-.986c-.925-.01-1.711.32-2.36.986-.649.667-.973 1.449-.973 2.347 0 .898.324 1.684.973 2.36.649.675 1.435 1 2.36.973.924-.027 1.711-.35 2.36-.973.649-.622.973-1.41.973-2.36zm3.813 6.2a.89.89 0 0 1-.293.666.955.955 0 0 1-.68.28.867.867 0 0 1-.653-.28l-2.547-2.546c-.889.613-1.88.92-2.973.92a5.166 5.166 0 0 1-2.04-.413 5.094 5.094 0 0 1-1.667-1.12 5.604 5.604 0 0 1-1.12-1.667 4.817 4.817 0 0 1-.413-2.04A5.325 5.325 0 0 1 3.348 3.98a4.92 4.92 0 0 1 1.667-1.12 5.718 5.718 0 0 1 2.04-.413 4.513 4.513 0 0 1 2.04.413 6.231 6.231 0 0 1 1.666 1.12c.48.454.854 1.014 1.12 1.68.267.667.405 1.342.414 2.027a5.117 5.117 0 0 1-.92 2.973l2.546 2.547c.187.186.28.413.28.68z" fill="currentColor"/>\n </g>\n <defs>\n <clipPath id="jqcxzuf71a">\n <path fill="transparent" transform="matrix(1 0 0 -1 1.334 14.834)" d="M0 0h13.333v13.333H0z"/>\n </clipPath>\n </defs>\n</svg>\n')} 157 </span>`} 158 </div>`}_renderFilters(e){return e?a.x` 159 <div class="mb-2 text-sm"> 160 <div class="flex-col sm:flex-row flex gap-2 max-w-screen-sm [&>*]:flex-1"> 161 ${this._renderUserFilterInput()} 162 <select-dropdown 163 label="filter by matchup" 164 _id="matchup-filter" 165 .selected="${this._matchup}" 166 .options="${this._filtersData.matchups.map((({key:e,value:s})=>({label:e,value:s,classes:e.includes("@")?"uppercase":""})))}" 167 .onChange="${this._handleFilterChange}"></select-dropdown> 168 <select-dropdown 169 label="select odds format" 170 selectClass="capitalize" 171 _id="odds-format-filter" 172 .selected="${this._oddsFormat}" 173 .options="${Object.values(n.O).map((e=>({label:e,value:e})))}" 174 .onChange="${this._handleFilterChange}"></select-dropdown> 175 </div> 176 <hr class="border-base-200 mt-4 mb-0" /> 177 </div> 178 `:a.A}_renderPendingHtml(){return a.x`<div class="mt-4 border rounded gap-8 py-6 flex flex-col p-3 m-1 border-base-200 animate-pulse"> 179 ${[1,2,3,4].map(((e,s)=>a.x`${0!==s?a.x`<hr class="border-base-200" />`:a.A} 180 <div class="flex gap-2 flex-col"> 181 <div class="flex justify-between"> 182 <div class="w-5 h-5 flex-shrink-0 rounded-full bg-base-200"></div> 183 <div class="w-1/3 h-8 bg-base-200 rounded"></div> 184 </div> 185 <div class="flex gap-6 justify-between"> 186 <div class="flex gap-2 flex-col"> 187 <div class="w-20 h-3 rounded flex-shrink-0 bg-base-200"></div> 188 <div class="w-20 h-3 rounded flex-shrink-0 bg-base-200"></div> 189 </div> 190 <div class="w-1/3 h-8 bg-base-200 rounded"></div> 191 </div> 192 </div>`))} 193 </div>`}validateProps(){if(!this.league)throw console.error("Missing property: league"),new Error;if(0===this.books.length)throw console.error("Missing property: books"),new Error}};var A,G;b.styles=[...(A=b,G=b,f(P(A),"styles",G)),a.i` 194 :host { 195 ${(0,a.r)(p.I.icoCompareVar)} 196 } 197 `],v([(0,o.t)()],b.prototype,"_filtersData",2),v([(0,o.t)()],b.prototype,"_gameProps",2),v([(0,o.t)()],b.prototype,"_prop",2),v([(0,o.t)()],b.prototype,"_matchup",2),v([(0,o.t)()],b.prototype,"_userSearchFilterText",2),v([(0,o.t)()],b.prototype,"_compareDialogId",2),v([(0,l.e)({passive:!0})],b.prototype,"_handleCompareOdds",1),b=v([(0,a.e)("xlmwc-player-props"),(0,a.a)(a.c)],b)},118:(e,s,t)=>{t.d(s,{s:()=>o});var a=t(695),r=t(369);const o='<svg viewBox="0 0 24 25" preserveAspectRatio="xMidYMid meet" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="m6.292 11.861 8.07-8.07a.997.997 0 0 1 1.409 0l.941.942a.997.997 0 0 1 .002 1.408l-6.396 6.425 6.396 6.425a.996.996 0 0 1-.002 1.408l-.941.941a.997.997 0 0 1-1.41 0l-8.07-8.07a.997.997 0 0 1 0-1.409z" fill="currentColor"/>\n <mask id="1ur3nkllfa" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="6" y="3" width="12" height="19">\n <path d="m6.292 11.861 8.07-8.07a.997.997 0 0 1 1.409 0l.941.942a.997.997 0 0 1 .002 1.408l-6.396 6.425 6.396 6.425a.996.996 0 0 1-.002 1.408l-.941.941a.997.997 0 0 1-1.41 0l-8.07-8.07a.997.997 0 0 1 0-1.409z" fill="transparent"/>\n </mask>\n</svg>\n',{I:l}=a.j,n=()=>document.createComment(""),i=(e,s,t)=>{var a;const r=e._$AA.parentNode,o=void 0===s?e._$AB:s._$AA;if(void 0===t){const s=r.insertBefore(n(),o),a=r.insertBefore(n(),o);t=new l(s,a,e,e.options)}else{const s=t._$AB.nextSibling,l=t._$AM,n=l!==e;if(n){let s;null===(a=t._$AQ)||void 0===a||a.call(t,e),t._$AM=e,void 0!==t._$AP&&(s=e._$AU)!==l._$AU&&t._$AP(s)}if(s!==o||n){let e=t._$AA;
197for(;e!==s;){const s=e.nextSibling;r.insertBefore(e,o),e=s}}}return t},d=(e,s,t=e)=>(e._$AI(s,t),e),c={},h=e=>{var s;null===(s=e._$AP)||void 0===s||s.call(e,!1,!0);let t=e._$AA;const a=e._$AB.nextSibling;for(;t!==a;){const e=t.nextSibling;t.remove(),t=e}},p=(e,s,t)=>{const a=new Map;for(let r=s;r<=t;r++)a.set(e[r],r);return a},u=(0,r.e)(class extends r.i{constructor(e){if(super(e),e.type!==r.t.CHILD)throw Error("repeat() can only be used in text expressions")}ct(e,s,t){let a;void 0===t?t=s:void 0!==s&&(a=s);const r=[],o=[];let l=0;for(const s of e)r[l]=a?a(s,l):l,o[l]=t(s,l),l++;return{values:o,keys:r}}render(e,s,t){return this.ct(e,s,t).values}update(e,[s,t,r]){var o;const l=(e=>e._$AH)(e),{values:n,keys:u}=this.ct(s,t,r);if(!Array.isArray(l))return this.ut=u,n;const g=null!==(o=this.ut)&&void 0!==o?o:this.ut=[],m=[];let P,f,v=0,b=l.length-1,A=0,G=n.length-1;for(;v<=b&&A<=G;)if(null===l[v])v++;else if(null===l[b])b--;else if(g[v]===u[A])m[A]=d(l[v],n[A]),v++,A++;else if(g[b]===u[G])m[G]=d(l[b],n[G]),b--,G--;else if(g[v]===u[G])m[G]=d(l[v],n[G]),i(e,m[G+1],l[v]),v++,G--;else if(g[b]===u[A])m[A]=d(l[b],n[A]),i(e,l[v],l[b]),b--,A++;else if(void 0===P&&(P=p(u,A,G),f=p(g,v,b)),P.has(g[v]))if(P.has(g[b])){const s=f.get(u[A]),t=void 0!==s?l[s]:null;if(null===t){const s=i(e,l[v]);d(s,n[A]),m[A]=s}else m[A]=d(t,n[A]),i(e,l[v],t),l[s]=null;A++}else h(l[b]),b--;else h(l[v]),v++;for(;A<=G;){const s=i(e,m[G+1]);d(s,n[A]),m[A++]=s}for(;v<=b;){const e=l[v++];null!==e&&h(e)}return this.ut=u,((e,s=c)=>{e._$AH=s})(e,m),a.T}});var g=Object.defineProperty,m=Object.getOwnPropertyDescriptor,P=(e,s,t,a)=>{for(var r,o=a>1?void 0:a?m(s,t):s,l=e.length-1;l>=0;l--)(r=e[l])&&(o=(a?r(s,t,o):r(o))||o);return a&&o&&g(s,t,o),o};const f=(0,a.a)(a.c);let v=class extends(f(a.s)){constructor(){super(...arguments),this._id="",this.onChange=()=>{},this.selected="",this.disabled=!1,this.selectClass="",this.label=null,this.options=[]}_handleChange(e){e.target.blur(),this.onChange(e)}render(){return a.x`<div 198 class="${this.tw((0,a.b)("flex rounded relative group overflow-hidden font-sans-bold font-bold text-sm",this.disabled&&"pointer-events-none"))}"> 199 <select 200 aria-label=${e=this.label,e??a.A} 201 ?disabled=${this.disabled} 202 id="${this._id}" 203 @change="${this._handleChange}" 204 class="${this.tw((0,a.b)("cursor-pointer bg-base-100 border border-base-200 w-full font-bold flex-1 peer appearance-none rounded p-2 pr-7",null==this?void 0:this.selectClass))}"> 205 ${u(this.options,(e=>e.value),(({value:e,label:s,classes:t})=>a.x`<option 206 class="${t?this.tw(t):a.A}" 207 value="${e}" 208 ?selected=${this.selected===e}> 209 ${s} 210 </option>`))} 211 </select> 212 <span 213 class="${this.tw((0,a.b)("pointer-events-none -rotate-90 transition-transform peer-focus:rotate-90 duration-300 z-10 right-3 absolute w-2.5 h-2.5 self-center",this.disabled?"opacity-50":"opacity-100"))}"> 214 ${(0,r.o)(o)} 215 </span> 216 </div>`;var e}};P([(0,a.n)({type:String})],v.prototype,"_id",2),P([(0,a.n)({type:Function})],v.prototype,"onChange",2),P([(0,a.n)({type:String})],v.prototype,"selected",2),P([(0,a.n)({type:Boolean,reflect:!0})],v.prototype,"disabled",2),P([(0,a.n)({type:String,reflect:!0})],v.prototype,"selectClass",2),P([(0,a.n)({type:String,reflect:!0})],v.prototype,"label",2),P([(0,a.n)({type:Array})],v.prototype,"options",2),v=P([(0,a.e)("select-dropdown")],v)}}]);
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.