{"version":3,"file":"js/betslip-bundle-ebee489388904aa48123.js","mappings":"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","sources":["webpack://app/./app/javascript/bundles/Chat/components/utils/Loader.jsx","webpack://app/./app/javascript/bundles/Chat/components/utils/utils.js","webpack://app/./app/javascript/bundles/BetSlip/components/Play.jsx","webpack://app/./app/javascript/bundles/BetSlip/components/Scratchpad.jsx","webpack://app/./app/javascript/bundles/BetSlip/components/BetSlip.jsx","webpack://app/./app/javascript/bundles/BetSlip/components/History.jsx","webpack://app/./app/javascript/packs/betslip-bundle.js"],"sourcesContent":["import React from \"react\";\n\n\nexport default function Loader({ darkness = 700 }) {\n return (\n
\n \n \n \n \n Loading...\n
\n );\n}","\nimport fdFull from '../../../../images/books/fd.png';\nimport dkFull from '../../../../images/books/dk.png';\nimport pinnyFull from '../../../../images/books/pinny.png';\nimport mgmFull from '../../../../images/books/betmgm.png';\nimport barstoolFull from '../../../../images/books/espn.webp';\nimport kambiFull from '../../../../images/books/betrivers.webp';\nimport kalshiFull from '../../../../images/books/kalshi.png';\nimport pbFull from '../../../../images/books/pb.png';\nimport fnFull from '../../../../images/books/fanatics.png';\nimport hrFull from '../../../../images/books/hardrock.jpeg';\nimport fliffFull from '../../../../images/books/fliff.webp';\nimport b365Full from '../../../../images/books/b365.webp';\nimport novigFull from '../../../../images/books/novig.webp';\nimport prophetFull from '../../../../images/books/prophet.webp';\nimport bolFull from '../../../../images/books/betonline.png';\nimport czrFull from '../../../../images/books/czr.webp';\nimport bppFull from '../../../../images/books/bpp-black.jpg';\nimport circaFull from '../../../../images/books/circa.webp';\nimport betopenlyFull from '../../../../images/books/betopenly.webp';\nimport sporttradeFull from '../../../../images/books/sporttrade.webp';\nimport bookmakerFull from '../../../../images/books/bookmaker.jpg';\nimport bet105Full from '../../../../images/books/bet105.png';\nimport kuttFull from '../../../../images/books/kutt.webp';\nimport rebetFull from '../../../../images/books/rebet.png';\n\nexport function floored_cents_to_dollars(cents) {\n if (!cents) {\n return '';\n }\n return `$${Math.floor(cents / 100)}`;\n}\n\nexport function toTitleCase(str) {\n return str.replace(\n /\\w\\S*/g,\n function(txt) {\n return txt.charAt(0).toUpperCase() + txt.substring(1);\n }\n );\n}\n\nexport function prettyMktName(mkt) {\n if (mkt === 'pitcher_strikeout_over_under') {\n return 'Strikeouts'\n }\n const fixed = mkt.replaceAll('player_', '')\n .replaceAll('pitcher_', '')\n .replaceAll('batter_', '')\n .replaceAll('goalie_', '')\n .replaceAll('_over_under', '')\n .replaceAll('yds', 'yards')\n .replaceAll('_', ' ');\n return toTitleCase(fixed);\n}\n\n\nexport function teamToLogoSrc(team) {\n team = team.toLowerCase();\n let src = '';\n switch (team) {\n case 'texas rangers':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/rangers.svg';\n break;\n case 'new york yankees':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/yankees.svg';\n break;\n case 'philadelphia phillies':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/phillies.svg';\n break;\n case 'los angeles angels':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/angels.svg';\n break;\n case 'pittsburgh pirates':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/pirates.svg';\n break;\n case 'kansas city royals':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/royals.svg';\n break;\n case 'chicago white sox':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/whitesox.svg';\n break;\n case 'boston red sox':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/redsox.svg';\n break;\n case 'milwaukee brewers':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/brewers.svg';\n break;\n case 'chicago cubs':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/cubs.svg';\n break;\n case 'st. louis cardinals':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/cardinals.svg';\n break;\n case 'atlanta braves':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/braves.svg';\n break;\n case 'new york mets':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/mets.svg';\n break;\n case 'san francisco giants':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/giants.svg';\n break;\n case 'los angeles dodgers':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/dodgers.svg';\n break;\n case 'colorado rockies':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/rockies.svg';\n break;\n case 'seattle mariners':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/mariners.svg';\n break;\n case 'washington nationals':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/nationals.svg';\n break;\n case 'baltimore orioles':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/orioles.svg';\n break;\n case 'oakland athletics':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/athletics.svg';\n break;\n case 'cincinnati reds':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/reds.svg';\n break;\n case 'arizona diamondbacks':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/dbacks.svg';\n break;\n case 'detroit tigers':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/tigers.svg';\n break;\n case 'miami marlins':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/marlins.svg';\n break;\n case 'cleveland guardians':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/guardians.svg';\n break;\n case 'minnesota twins':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/twins.svg';\n break;\n case 'toronto blue jays':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/jays.svg';\n break;\n case 'houston astros':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/astros.svg';\n break;\n case 'tampa bay rays':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/rays.svg';\n break;\n case 'san diego padres':\n src = 'https://mcwxlegantbmzk8stzntftdo.nyc3.cdn.digitaloceanspaces.com/static/logos/mlb/padres.svg';break;\n }\n return src;\n}\n\nexport function oddsString(odds) {\n if (odds < 0) {\n return `-${Math.abs(odds)}`;\n }\n return `+${odds}`;\n}\n\nexport function bookToFullImgSrc(s) {\n s = s.toLowerCase();\n let src = null;\n switch (s) {\n case 'pinnacle':\n src = pinnyFull; break;\n case 'fanduel':\n src = fdFull; break;\n case 'draftkings':\n src = dkFull; break;\n case 'betmgm':\n src = mgmFull; break;\n case 'barstool':\n case 'espn bet':\n src = barstoolFull; break;\n case 'betrivers':\n case 'kambi':\n src = kambiFull; break;\n case 'kalshi':\n src = kalshiFull; break;\n case 'caesars':\n src = czrFull; break;\n case 'pointsbet':\n src = pbFull; break;\n case 'kutt':\n src = kuttFull; break;\n case 'bet105':\n src = bet105Full; break;\n case 'rebet':\n src = rebetFull; break;\n case 'sporttrade':\n src = sporttradeFull; break;\n case 'bookmaker':\n src = bookmakerFull; break;\n case 'betopenly':\n src = betopenlyFull; break;\n case 'circa':\n src = circaFull; break;\n case 'fanatics':\n src = fnFull; break;\n case 'hard rock':\n case 'hardrock':\n src = hrFull; break;\n case 'fliff':\n src = fliffFull; break;\n case 'bet365':\n src = b365Full; break;\n case 'betonline':\n src = bolFull; break;\n case 'novig':\n src = novigFull; break;\n case 'prophetx':\n src = prophetFull; break;\n case 'ballparkpal':\n src = bppFull; break;\n }\n return src;\n}\n\nexport function bookToBg(book) {\n book = book.toLowerCase();\n switch (book) {\n case 'pinnacle':\n return 'rgb(255, 85, 0)';\n case 'fanduel':\n return 'rgb(47, 110, 227)';\n case 'draftkings':\n return 'rgb(120, 208, 82)';\n case 'betmgm':\n return 'rgb(213, 192, 122)';\n case 'barstool':\n case 'espn bet':\n return 'rgb(115, 240, 204)';\n case 'betrivers':\n case 'kambi':\n return 'rgb(35, 35, 150)';\n case 'caesars':\n return 'rgb(31, 83, 51)';\n case 'circa':\n return 'rgb(41, 51, 130)';\n case 'pointsbet':\n return 'rgb(218, 56, 72)';\n case 'sporttrade':\n return 'rgb(0, 134, 90)';\n case 'fanatics':\n return 'rgb(129, 24, 34)';\n case 'hardrock':\n return 'rgb(145, 124, 247)';\n case 'bet365':\n return 'rgb(251, 229, 81)';\n case 'betonline':\n return 'rgb(45, 46, 44)';\n case 'ballparkpal':\n return 'rgb(0, 0, 0)';\n case 'betopenly':\n return 'rgb(217, 56, 49)';\n case 'bookmaker':\n return 'rgb(255, 204, 0)';\n case 'kalshi':\n return 'rgb(0, 217, 145)';\n case 'bet105':\n return 'rgb(36, 112, 190)';\n case 'kutt':\n return 'rgb(2, 247, 0)';\n case 'rebet':\n return 'rgb(252, 74, 51)';\n default:\n return 'rgb(229, 229, 229)';\n }\n}\n\nexport function bookKeyToName(book) {\n book = book.toLowerCase().trim();\n switch (book) {\n case 'fanduel': return 'FanDuel';\n case 'draftkings': return 'DraftKings';\n case 'barstool': return 'ESPN BET';\n case 'pinnacle': return 'Pinnacle';\n case 'betmgm': return 'BetMGM';\n case 'betrivers': return 'BetRivers';\n case 'caesars': return 'Caesars';\n case 'fliff': return 'Fliff';\n case 'pointsbet': return 'PointsBet';\n case 'sporttrade': return 'Sporttrade';\n case 'bookmaker': return 'BookMaker';\n case 'betopenly': return 'BetOPENLY';\n case 'circa': return 'Circa';\n case 'fanatics': return 'Fanatics';\n case 'bet365': return 'Bet365';\n case 'hardrock': return 'Hard Rock';\n case 'betonline': return 'BetOnline';\n case 'novig': return 'Novig';\n case 'prophetx': return 'ProphetX';\n case 'ballparkpal': return 'Ballpark Pal';\n case 'kalshi': return 'Kalshi';\n case 'bet105': return 'Bet105';\n case 'kutt': return 'Kutt';\n case 'rebet': return 'Rebet';\n default: return book;\n }\n}\nexport function bookKeyToDbName(book) {\n book = book.toLowerCase().trim();\n switch (book) {\n case 'fanduel': return 'FanDuel';\n case 'draftkings': return 'DraftKings';\n case 'barstool': return 'Barstool';\n case 'pinnacle': return 'Pinnacle';\n case 'betmgm': return 'BetMGM';\n case 'betrivers': return 'BetRivers';\n case 'caesars': return 'Caesars';\n case 'fliff': return 'Fliff';\n case 'pointsbet': return 'PointsBet';\n case 'sporttrade': return 'Sporttrade';\n case 'bookmaker': return 'BookMaker';\n case 'betopenly': return 'BetOPENLY';\n case 'circa': return 'Circa';\n case 'fanatics': return 'Fanatics';\n case 'bet365': return 'Bet365';\n case 'hardrock': return 'Hardrock';\n case 'betonline': return 'BetOnline';\n case 'novig': return 'Novig';\n case 'prophetx': return 'ProphetX';\n case 'ballparkpal': return 'Ballpark Pal';\n case 'kalshi': return 'Kalshi';\n case 'bet105': return 'Bet105';\n case 'kutt': return 'Kutt';\n case 'rebet': return 'Rebet';\n default: return book;\n }\n}\n\n\nexport function americanToDec(odds) {\n if (odds > 0) {\n return (1 + (odds / 100.0));\n } else {\n return (1 + (100.0 / Math.abs(odds)));\n }\n}\n\nexport function decToAmerican(odds) {\n if (odds >= 2) {\n return Math.round((odds - 1) * 100);\n } else {\n return Math.round(-100 / (odds - 1));\n }\n}\n","import React, {useState} from 'react';\nimport pxLogoBlack from \"../../../images/pxtextblack.svg\";\nimport nvgLogoBlack from \"../../../images/nvgtextblack.svg\";\nimport pxLogoWhite from \"../../../images/pxtextwhite.svg\";\nimport nvgLogoWhite from \"../../../images/nvgtextwhite.svg\";\nimport trophyImg from \"../../../images/trophy.png\";\nimport cashImg from \"../../../images/pcash.svg\";\nimport nvgCashImg from \"../../../images/novigcash.png\";\nimport { toTitleCase, americanToDec } from \"../../Chat/components/utils/utils\";\n\nconst Play = ({play}) => {\n const [isLoadingShare, setIsLoadingShare] = useState(false);\n const isWin = play.status === 'win';\n const isLoss = play.status === 'loss';\n const isPending = play.status === 'pending';\n\n const computePayout = (odds, stake) => {\n const decOdds = americanToDec(odds);\n const payout = stake * decOdds;\n return payout.toFixed(2);\n }\n\n const genShareUrl = async () => {\n const atBookie = play.bookie === 'prophetx' ? '@PlayProphetX' : '@novig_app';\n const odds = play.odds > 0 ? '%2B' + play.odds : play.odds;\n let url = `https://twitter.com/intent/tweet?text=${play.eventTitle}%0A${play.marketTitle}%0A${play.outcomeTitle}%0A${odds}%20on%20${atBookie}%0A%0A&via=BeeBettor`;\n if (play.bookie !== 'prophetx' || !isPending) {\n return url;\n }\n \n // get the share link url...\n setIsLoadingShare(true);\n try {\n const body = {\n 'bookie': play.bookie,\n 'play': play.play,\n };\n \n const res = await fetch(`/wager/orderbook/play/deeplink`, {\n 'method': 'POST',\n 'body': JSON.stringify(body),\n 'headers': {\n 'Content-Type': \"application/json\",\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n });\n \n if (!res.ok) {\n throw new Error('Network response was not ok');\n }\n \n const data = await res.json();\n if (data.deeplink) {\n url += '&url=' + encodeURIComponent(data.deeplink);\n }\n setIsLoadingShare(false);\n return url;\n } catch (err) {\n console.error(err);\n setIsLoadingShare(false);\n return url; // Return basic URL if there's an error\n }\n }\n console.log(play.marketTitle)\n\n return (\n
\n
\n
\n {play.bookie === 'prophetx' && \"ProphetX\"}\n {play.bookie === 'novig' && \"Novig\"}\n {play.bookie === 'prophetx' && \"ProphetX\"}\n {play.bookie === 'novig' && \"Novig\"}\n \n {isLoadingShare &&
\n \n \n \n \n Loading...\n
}\n {!isLoadingShare &&

{\n const shareUrl = await genShareUrl();\n window.open(shareUrl, '_blank');\n }}\n >Share

}\n
\n {isWin && play.bookie === 'prophetx' &&
\"Trophy\"
}\n {isWin && play.bookie === 'novig' &&
\"Trophy\"
}\n
\n
\n
\n

{decodeURIComponent(encodeURIComponent(play.marketTitle))}

\n

{play.odds > 0 ? '+' + play.odds : play.odds}

\n
\n\n
\n {isWin && check_circle}\n {isLoss && cancel}\n {isPending && radio_button_unchecked}\n

{toTitleCase(play.outcomeTitle)}

\n
\n\n
\n

{play.eventTitle}

\n

{new Date(play.eventTs).toLocaleString('en-US', {\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n hour12: true\n })}

\n
\n
\n\n\n
\n
\n {play.bookie === 'prophetx' && \"cash\"}\n {play.bookie === 'novig' && \"cash\"}\n
{play.stake.toFixed(2)}
\n
\n
\n\n {isWin &&
\n {play.bookie === 'prophetx' && \"cash\"}\n {play.bookie === 'novig' && \"cash\"}\n

{computePayout(play.odds, play.stake)}

\n
}\n\n {isPending && \n
\n

To Win

\n
\n {play.bookie === 'prophetx' && \"cash\"}\n {play.bookie === 'novig' && \"cash\"}\n

{computePayout(play.odds, play.stake)}

\n
\n
\n }\n
\n
\n\n
\n )\n}\n\nexport default Play;\n","import React, {useEffect, useState} from 'react';\nimport { bookToFullImgSrc, bookKeyToDbName } from \"../../Chat/components/utils/utils\";\n\n// oc has type: \n// {\n// bookie?: string,\n// odds?: number,\n// otherSideOdds?: number,\n// }\n\n\nconst BOOKIES = [\n 'prophetx',\n 'novig',\n 'sporttrade',\n 'fanduel',\n 'draftkings',\n 'espn bet',\n 'pinnacle',\n 'betmgm',\n 'betrivers',\n 'caesars',\n 'fliff',\n 'pointsbet',\n 'betopenly',\n 'circa',\n 'fanatics',\n 'bet365',\n 'hardrock',\n 'betonline',\n 'kalshi',\n 'bet105',\n 'kutt',\n 'rebet',\n];\n\nconst EditableOutcome = ({oc, updateHandler, removeHandler, isMain = false}) => {\n const [showBookieModal, setShowBookieModal] = useState(false);\n const [searchTerm, setSearchTerm] = useState('');\n\n useEffect(() => {\n // Handle escape key\n const handleEscape = (event) => {\n if (event.key === 'Escape') {\n setShowBookieModal(false);\n }\n };\n\n // Handle clicks outside\n const handleClickOutside = (event) => {\n if (showBookieModal && !event.target.closest('.bookie-modal-content')) {\n setShowBookieModal(false);\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n document.addEventListener('mousedown', handleClickOutside);\n\n // Cleanup\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [showBookieModal]);\n\n const filteredBookies = BOOKIES.filter(bookie =>\n bookie.toLowerCase().includes(searchTerm.toLowerCase())\n );\n\n return (\n
\n
\n {!isMain && (\n \n )}\n
setShowBookieModal(true)}>\n {!oc.bookie &&
}\n {oc.bookie && {oc.bookie}}\n
\n\n {showBookieModal && (\n
\n setSearchTerm(e.target.value)}\n />\n
\n
{\n updateHandler({...oc, bookie: null});\n setShowBookieModal(false);\n }}\n >\n \n \n \n
\n {filteredBookies.map(bookie => (\n
\n {bookie}\n {\n // TODO: Add logic to update the bookie\n updateHandler({...oc, bookie});\n setShowBookieModal(false);\n }}\n />\n
\n ))}\n
\n \n
\n )}\n
\n\n
\n updateHandler({...oc, odds: e.target.value})}\n onBlur={(e) => {\n const numValue = parseFloat(e.target.value);\n if (isNaN(numValue) || e.target.value === '') {\n updateHandler({...oc, odds: null});\n } else {\n updateHandler({...oc, odds: numValue});\n }\n }}\n />\n
\n
\n updateHandler({...oc, otherSideOdds: e.target.value})}\n onBlur={(e) => {\n const numValue = parseFloat(e.target.value);\n if (isNaN(numValue) || e.target.value === '') {\n updateHandler({...oc, otherSideOdds: null});\n } else {\n updateHandler({...oc, otherSideOdds: numValue});\n }\n }}\n />\n
\n
\n )\n}\n\nconst Scratchpad = ({targetBookie, ockey}) => {\n const DEFAULT_OUTCOME = {\n bookie: null,\n odds: null,\n otherSideOdds: null,\n id: Date.now(),\n }\n const [oc, setOc] = useState({...DEFAULT_OUTCOME, id: Date.now()});\n const [comparables, setComparables] = useState([{...DEFAULT_OUTCOME, id: Date.now()+1}, {...DEFAULT_OUTCOME, id: Date.now()+2}, {...DEFAULT_OUTCOME, id: Date.now()+3}]);\n const [weights, setWeights] = useState([]);\n const [selectedWeight, setSelectedWeight] = useState(''); // api_id\n const [kelly, setKelly] = useState(1);\n const [bankroll, setBankroll] = useState(null);\n\n const [probit, setProbit] = useState(null);\n const [multiplicative, setMultiplicative] = useState(null);\n const [additive, setAdditive] = useState(null);\n const [power, setPower] = useState(null);\n\n useEffect(() => {\n if (ockey) {\n reset();\n const body = {ockey};\n fetch(`/betslip/comparables`, {\n 'method': 'POST',\n 'body': JSON.stringify(body),\n 'headers': {\n 'Content-Type': \"application/json\",\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n const dataWithIds = data.map((d, i) => ({...d, id: Date.now()+i})).sort((a, b) => b.odds - a.odds)\n const comparables = dataWithIds.filter(d => d.bookie !== targetBookie);\n const targetData = dataWithIds.find(d => d.bookie === targetBookie);\n if (!!targetData) {\n setOc(targetData);\n } else {\n setOc({...DEFAULT_OUTCOME});\n }\n setComparables(comparables);\n }).catch(err => {\n console.error(err);\n const statusCode = err.status;\n alert(`Error ${statusCode} occurred.`);\n });\n } else {\n fetch(`/profile/user/settings/scratchpad`, {\n 'headers': {\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n if (data) {\n // TODO: parse the data.\n if (data.target) {\n setOc(data.target);\n }\n if (data.comparables) {\n setComparables(data.comparables);\n }\n }\n }).catch(err => {\n console.error(err);\n const statusCode = err.status;\n alert(`Error ${statusCode} occurred.`);\n });\n }\n }, [ockey]);\n\n useEffect(() => {\n fetch(`/devig/weights`, {\n 'headers': {\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n setWeights(data);\n }).catch(err => {\n console.error(err);\n });\n // get the bet sizing settings.\n fetch('/profile/user/settings', {\n 'headers': {\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n if (data.kelly) {\n const kellyValue = typeof data.kelly === 'string' ? parseFloat(data.kelly) : data.kelly;\n if (!isNaN(kellyValue)) {\n setKelly(kellyValue);\n }\n }\n if (data.bankroll) {\n const bankrollValue = typeof data.bankroll === 'string' ? parseFloat(data.bankroll) : data.bankroll;\n if (!isNaN(bankrollValue)) {\n setBankroll(bankrollValue);\n }\n }\n }).catch(err => {\n console.error(err);\n });\n\n }, []);\n\n useEffect(() => {\n // updateScratchpadState();\n const timeoutId = setTimeout(() => {\n updateScratchpadState();\n }, 1000);\n\n return () => clearTimeout(timeoutId);\n }, [oc, comparables]);\n\n const updateScratchpadState = () => {\n const locOc = {...oc, bookie: !oc.bookie ? null : bookKeyToDbName(oc.bookie)};\n const locComparables = comparables.map(c => ({...c, bookie: !c.bookie ? null : bookKeyToDbName(c.bookie)}));\n const body = {\n target: locOc,\n comparables: locComparables,\n }\n fetch(`/profile/user/settings/scratchpad`, {\n 'method': 'POST',\n 'body': JSON.stringify(body),\n 'headers': {\n 'Content-Type': \"application/json\",\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n // console.log(data)\n }).catch(err => {\n console.error(err);\n });\n }\n\n const reset = () => {\n setOc({...DEFAULT_OUTCOME, id: Date.now()});\n setComparables([{...DEFAULT_OUTCOME, id: Date.now()+1}, {...DEFAULT_OUTCOME, id: Date.now()+2}, {...DEFAULT_OUTCOME, id: Date.now()+3}]);\n setSelectedWeight('');\n setProbit(null);\n setMultiplicative(null);\n setAdditive(null);\n setPower(null);\n }\n\n const updateMainOc = (newOc) => {\n setOc(newOc);\n };\n\n const updateComparableOc = (index, newOc) => {\n const newComparables = [...comparables];\n newComparables[index] = newOc;\n setComparables(newComparables);\n };\n\n const removeComparable = (index) => {\n const newComparables = comparables.filter((_, i) => i !== index);\n setComparables(newComparables);\n };\n\n const devig = () => {\n const locOc = {...oc, bookie: !oc.bookie ? null : bookKeyToDbName(oc.bookie)};\n const locComparables = comparables.map(c => ({...c, bookie: !c.bookie ? null : bookKeyToDbName(c.bookie)}));\n const body = {\n target: locOc,\n comparables: locComparables,\n weight_id: parseInt(selectedWeight) || null,\n }\n fetch(`/devig/v2`, {\n 'method': 'POST',\n 'body': JSON.stringify(body),\n 'headers': {\n 'Content-Type': \"application/json\",\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n setProbit(data.probit);\n setMultiplicative(data.multiplicative);\n setAdditive(data.additive);\n setPower(data.power);\n }).catch(err => {\n console.error(err);\n const statusCode = err.status;\n alert(`Error ${statusCode} occurred.`);\n });\n }\n\n const computeKelly = (item) => {\n // item has fields ev, kelly, fv\n\n let kellyPrefix = kelly.toFixed(2) + ' Kelly: ';\n if (kelly === 1) {\n kellyPrefix = 'FK: ';\n } else if (kelly === 0.5) {\n kellyPrefix = 'HK: ';\n } else if (kelly === 0.25) {\n kellyPrefix = 'QK: ';\n }\n\n const locKelly = kelly * item.kelly;\n if (bankroll > 0) {\n const betAmount = (locKelly/100) * bankroll;\n return '$' + Math.floor(betAmount).toFixed(2);\n } else {\n return kellyPrefix + locKelly.toFixed(2);\n }\n }\n\n return (\n
\n
\n\n
\n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n {probit &&

Probit: {probit.ev.toFixed(2)}% {probit.ev > 0 && computeKelly(probit)} ({probit.fv > 0 ? '+' + probit.fv : probit.fv})

}\n {multiplicative &&

Multiplicative: {multiplicative.ev.toFixed(2)}% {multiplicative.ev > 0 && computeKelly(multiplicative)} ({multiplicative.fv > 0 ? '+' + multiplicative.fv : multiplicative.fv})

}\n {additive &&

Additive: {additive.ev.toFixed(2)}% {additive.ev > 0 && computeKelly(additive)} ({additive.fv > 0 ? '+' + additive.fv : additive.fv})

}\n {power &&

Power: {power.ev.toFixed(2)}% {power.ev > 0 && computeKelly(power)} ({power.fv > 0 ? '+' + power.fv : power.fv})

}\n
\n
\n
\n\n
\n
\n {comparables.map((comp, index) => {\n return updateComparableOc(index, newOc)}\n removeHandler={() => removeComparable(index)}\n />\n })}\n setComparables([...comparables, {...DEFAULT_OUTCOME, id: Date.now()}])}\n >\n \n \n \n \n\n
\n
\n
\n\n
\n \n
\n
\n )\n}\n\nexport default Scratchpad;","import React, {useEffect, useRef, useState} from 'react';\nimport Loader from \"../../Chat/components/utils/Loader\";\nimport Play from \"./Play\";\nimport {\n americanToDec,\n bookToFullImgSrc,\n floored_cents_to_dollars,\n prettyMktName\n} from \"../../Chat/components/utils/utils\";\nimport externalLinkIcon from \"../../../images/externalLink.svg\";\nimport {DateTime} from \"luxon\";\nimport rightArrow from \"../../../images/rightarrow.svg\";\nimport downArrow from \"../../../images/downarrow.svg\";\nimport emptyIcon from \"../../../images/empty.png\";\nimport cross from \"../../../images/cross.svg\";\nimport cashImg from \"../../../images/pcash.svg\";\nimport pointsImg from \"../../../images/ppoints.svg\";\nimport nvgCashImg from \"../../../images/novigcash.png\";\nimport nvgCoinImg from \"../../../images/novigcoin.png\";\nimport parlayBlurImg from \"../../../images/parlayblur.png\";\nimport Scratchpad from './Scratchpad';\n\n\nfunction Leg({leg, removeLeg, copyToScratchpad}) {\n const [isLoading, setIsLoading] = useState(false);\n const hasDeeplink = (('deeplink' in leg) && (leg['deeplink'] !== '') && (leg['deeplink'] !== null));\n\n useEffect(() => {\n setIsLoading(false);\n }, [leg]);\n\n const gotoLink = (url) => {\n if (!url) {\n return;\n }\n window.open(url, '_blank', 'noreferrer noopener');\n }\n\n const removeHandler = () => {\n setIsLoading(true);\n removeLeg(leg.ockey);\n }\n\n return (\n
\n {isLoading && }\n {!isLoading &&\n <>\n
\n
gotoLink(leg['deeplink'])}>\n
\n {leg.bookie}\n {leg.bookie}\n
\n
\n
\n

{leg.odds}

\n

{floored_cents_to_dollars(leg.liquidity)}

\n
\n { hasDeeplink ? \"external : null}\n
\n
\n\n
\n
\n {!!leg.participant &&

{leg.participant_name}

}\n

{leg.name} {(leg.handicap !== 0) ? leg.handicap : ''} {prettyMktName(leg.market_key)}

\n
\n
\n
\n\n
\n
\n \"cross\"\n
\n

copyToScratchpad(leg.bookie_key, leg.ockey)} className=\"text-sm text-gray-500 dark:text-dark-text-secondary underline cursor-pointer\">Edit

\n
\n \n }\n
\n );\n}\n\n\n\nfunction GameView({initLegs, isCollapsed, legRemoveHandlerSlip, copyToScratchpad}) {\n const league = initLegs[0].game_info.league\n const game = initLegs[0].game_info.game;\n const [legs, setLegs] = useState(initLegs);\n const [collapsed, setCollapsed] = useState(isCollapsed);\n const toggleExpanded = () => {\n setCollapsed(!collapsed);\n };\n useEffect(() => {\n setLegs(initLegs);\n }, [initLegs]);\n\n const legRemoveHandler = (ockey) => {\n const body = {ocKey: ockey};\n fetch('/betslip/remove', {\n 'method': 'POST',\n 'body': JSON.stringify(body),\n 'headers': {\n 'Content-Type': \"application/json\",\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n const newLegs = legs.filter(leg => leg.ockey !== ockey);\n setLegs(newLegs);\n legRemoveHandlerSlip(ockey);\n }).catch(err => {\n console.error(err);\n const statusCode = err.status;\n alert(`Error ${statusCode} occurred.`);\n });\n }\n\n if (legs.length === 0) {\n return <>;\n }\n return (\n
\n
\n
\n\n {/*Code for Single Collapsible Start*/}\n
\n
\n
\n
\n
\n {!!game.away_team_img &&\n
\n {game.away_team}\n \"away\n
\n }\n {!game.away_team_img && league.includes('ncaa') &&

{game.away_team}

}\n {!game.away_team_img && !league.includes('ncaa') &&

{game.away_team.split(' ').at(-1)}

}\n
\n
@
\n
\n {!!game.home_team_img &&\n
\n {game.home_team}\n \"home\n
\n }\n {!game.home_team_img && league.includes('ncaa') &&

{game.home_team}

}\n {!game.home_team_img && !league.includes('ncaa') &&

{game.home_team.split(' ').at(-1)}

}\n
\n
\n

{ DateTime.fromISO(game.start_timestamp).toRelative() }

\n
\n
\n

({legs.length})

\n
\n {collapsed && \"arrow\"}\n {!collapsed && \"arrow\"}\n
\n
\n
\n
\n\n {!collapsed &&\n
\n { legs.map((leg, i) => ) }\n
\n }\n\n
\n
\n
\n );\n}\n\nconst ParlaySheet = ({parlayBooks, numLegs, game}) => {\n const [collapsed, setCollapsed] = useState(true);\n const toggleExpanded = () => {\n setCollapsed(!collapsed);\n };\n\n const goTo = (url) => {\n if (!url) {\n return;\n }\n window.open(url, '_blank')\n }\n\n if (!game) {\n return (\n
\n {parlayBooks.map((oc, index) => {\n return (\n
goTo(oc.deep)} key={index} className={`dark:bg-dark-bg-primary ${index === 0 ? 'border-green-500' : 'dark:border-dark-border-primary'} ${!!oc.deep ? 'cursor-pointer hover:bg-green-300/80 dark:hover:bg-green-300/10' : ''} bg-white flex flex-row justify-between gap-2 items-center border rounded-lg p-2`}>\n
\n {oc.book_key}\n

{oc.odds > 0 ? '+' : ''}{oc.odds}

\n
\n\n {!!oc.deep && \"external}\n
\n );\n })}\n
\n );\n }\n\n return (\n
\n
\n
\n\n {/*Code for Single Collapsible Start*/}\n
\n
\n
\n
\n
\n {!!game.away_team_img &&\n
\n {game.away_team}\n \"away\n
\n }\n {!game.away_team_img &&

{game.away_team.split(' ').at(-1)}

}\n
\n
@
\n
\n {!!game.home_team_img &&\n
\n {game.home_team}\n \"home\n
\n }\n {!game.home_team_img &&

{game.home_team.split(' ').at(-1)}

}\n
\n
\n

{ DateTime.fromISO(game.start_timestamp).toRelative() }

\n
\n
\n

({numLegs})

\n
\n {collapsed && \"arrow\"}\n {!collapsed && \"arrow\"}\n
\n
\n
\n
\n\n {!collapsed &&\n
\n {parlayBooks.map((oc, index) => {\n return (\n
goTo(oc.deep)} key={index} className={`dark:bg-dark-bg-primary ${index === 0 ? 'border-green-500' : 'dark:border-dark-border-primary'} ${!!oc.deep ? 'cursor-pointer hover:bg-green-300/80 dark:hover:bg-green-300/10' : ''} bg-gray-50 flex flex-row justify-between gap-2 items-center border rounded-lg p-2`}>\n
\n {oc.book_key}\n

{oc.odds > 0 ? '+' : ''}{oc.odds}

\n
\n\n {!!oc.deep && \"external}\n
\n );\n })}\n
\n }\n\n
\n
\n
\n )\n}\n\nconst BetSlip = (props) => {\n const [isDesktop, setIsDesktop] = useState(true);\n\n const [stake, setStake] = useState('');\n const [toWin, setToWin] = useState('');\n const [wagerOdds, setWagerOdds] = useState('');\n const [fillOrKill, setFillOrKill] = useState(true);\n\n const [tab, setTab] = useState('betslip');\n const [ isRealMoney, setIsRealMoney ] = useState(true);\n\n const [hasProphetBeta, setHasProphetBeta] = useState(true);\n const [hasNovigBeta, setHasNovigBeta] = useState(false);\n const [hasBetopenlyBeta, setHasBetopenlyBeta] = useState(true);\n\n const [errorText, setErrorText] = useState('');\n const [errorUrl, setErrorUrl] = useState('');\n const [successText, setSuccessText] = useState('');\n const [showPaywall, setShowPaywall] = useState(false);\n\n const [parlayComputeState, setParlayComputeState] = useState('idle'); // idle, computing, computed\n const [isLoadingParlay, setIsLoadingParlay] = useState(true);\n const [parlayBooks, setParlayBooks] = useState({});\n\n const [ isHidden, setIsHidden ] = useState(true);\n const [ isLoading, setIsLoading ] = useState(true);\n const [ loadingText, setLoadingText ] = useState('');\n const [isLoadingWager, setIsLoadingWager] = useState(false);\n const [ games, setGames ] = useState([]);\n\n const [ scratchpadTargetBookie, setScratchpadTargetBookie ] = useState('');\n const [ scratchpadOcky, setScratchpadOcky ] = useState('');\n\n const [displayPlay, setDisplayPlay] = useState(null);\n\n const copyToScratchpad = (bookie, ockey) => {\n setScratchpadTargetBookie(bookie);\n setScratchpadOcky(ockey);\n setTab('scratchpad');\n }\n\n const clearSlip = () => {\n setGames([]);\n setParlayBooks({});\n const body = {};\n fetch('/betslip/clear', {\n 'method': 'POST',\n 'body': JSON.stringify(body),\n 'headers': {\n 'Content-Type': \"application/json\",\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n }).catch(err => {\n console.error(err);\n const statusCode = err.status;\n alert(`Error ${statusCode} occurred.`);\n });\n }\n\n const closeSlip = () => {\n setWagerOdds('');\n setStake('');\n setToWin('');\n setIsHidden(true);\n }\n const openParlayTab = () => {\n if (isLoading) {\n return;\n }\n if (Object.values(games).length === 0) {\n return;\n }\n setErrorText('');\n setSuccessText('');\n setTab('parlay');\n if (parlayComputeState !== 'idle') {\n return;\n }\n computeParlay();\n }\n\n const legRemoveHandlerSlip = (ockey) => {\n setParlayBooks({});\n const curGames = games;\n const newGames = {};\n for (const [gid, legs] of Object.entries(curGames)) {\n const newLegs = legs.filter(leg => leg.ockey !== ockey);\n if (newLegs.length > 0) {\n newGames[gid] = newLegs;\n }\n }\n setGames(newGames);\n setParlayComputeState('idle');\n setIsLoadingParlay(true);\n }\n\n const computeParlay = () => {\n if (parlayComputeState === 'computing') {\n return;\n }\n setIsLoadingParlay(true);\n setParlayComputeState('computing');\n const legs = Object.values(games).reduce((acc, legs) => acc.concat(legs), []);\n if (legs.length <= 1) {\n setIsLoadingParlay(false);\n return;\n }\n\n const ockeys = legs.map(leg => leg.ockey);\n const body = {ocKeys: ockeys};\n const url = '/compute/parlay';\n fetch(url, {\n 'method': 'POST',\n 'body': JSON.stringify(body),\n 'headers': {\n 'Content-Type': \"application/json\",\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n const books = data.sort((a, b) => {\n if (a.odds < b.odds) {\n return 1;\n }\n if (a.odds > b.odds) {\n return -1;\n }\n return 0;\n });\n // split books by 'game_id'\n const objs = {};\n books.forEach((book) => {\n if (!(book.game_id in objs)) {\n objs[book.game_id] = [];\n }\n objs[book.game_id].push(book);\n });\n setParlayBooks(objs);\n setParlayComputeState('computed');\n setIsLoadingParlay(false);\n }).catch(err => {\n console.error(err);\n const statusCode = err.status;\n if (+statusCode === 403) {\n setParlayComputeState('computed');\n setIsLoadingParlay(false);\n setShowPaywall(true);\n } else {\n alert(`Error ${statusCode} occurred.`);\n }\n });\n }\n\n const changeStake = (e) => {\n const v = e.target.value;\n if (isNaN(v)) {\n return;\n }\n const odds = parseInt(Object.values(games)[0][0].odds);\n const decOdds = americanToDec(odds);\n setStake(v);\n setToWin((v * decOdds).toFixed(2));\n }\n const changeOdds = (e) => {\n const v = e.target.value;\n if (isNaN(v)) {\n return;\n }\n const odds = parseInt(v);\n Object.values(games)[0][0].odds = odds;\n setWagerOdds(v);\n setFillOrKill(false);\n }\n\n const getBetas = () => {\n fetch('/profile/user/beta/novig_wager', {\n 'headers': {\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n setHasNovigBeta(data.valid);\n }).catch(err => {\n console.error(err);\n const statusCode = err.status;\n alert(`Error ${statusCode} occurred.`);\n });\n }\n\n const openHandler = () => {\n setDisplayPlay(null);\n setErrorText('');\n setSuccessText('');\n setIsLoading(true);\n setGames([]);\n setIsHidden(false);\n\n if (!props.is_auth) {\n setIsLoading(false);\n return;\n }\n\n getBetas();\n\n // get the actual data.\n fetch('/betslip/get', {\n 'headers': {\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.text();\n }).then(data => {\n const legs = JSON.parse(data);\n let games = {};\n const legsByOckey = {};\n\n if (legs.length === 1) {\n const odds = parseInt(legs[0].odds);\n if (odds !== 0) {\n setWagerOdds(odds);\n }\n }\n\n legs.forEach((leg) => {\n const gid = leg.game_info.game.game_id;\n if (!(gid in games)) {\n games[gid] = [];\n }\n games[gid].push(leg);\n legsByOckey[leg.ockey] = leg;\n });\n setGames(games);\n setIsLoading(false);\n\n const recentSlipAdds = document.querySelector('div[name=\"recentSlipAdds\"]');\n if (!!recentSlipAdds) {\n Array.from(recentSlipAdds.children).forEach(child => {\n const ockey = child.dataset.ockey;\n const odds = parseInt(child.dataset.odds);\n if (ockey in legsByOckey) {\n const ockeyOdds = parseInt(legsByOckey[ockey].odds);\n if (odds !== ockeyOdds) {\n setErrorText('Odds have changed.');\n }\n }\n });\n }\n\n if (!!props.stake && Object.values(games).length > 0) {\n const odds = parseInt(Object.values(games)[0][0].odds);\n const decOdds = americanToDec(odds);\n const v = props.stake;\n setStake(v);\n setToWin((v * decOdds).toFixed(2));\n\n if (!!props.odds) {\n const fOrKProp = !!props.fill_or_kill;\n if (!fOrKProp) {\n setFillOrKill(false);\n const propOdds = parseInt(props.odds);\n const decPropOdds = americanToDec(propOdds);\n setToWin((v * decPropOdds).toFixed(2));\n setWagerOdds(propOdds);\n Object.values(games)[0][0].odds = propOdds;\n } else if (odds !== props.odds) {\n setStake('');\n setToWin('');\n setErrorText('Odds have changed.');\n }\n }\n }\n }).catch(err => {\n console.error(err);\n const statusCode = err.status;\n alert(`Error ${statusCode} occurred.`);\n });\n }\n\n useEffect(() => {\n const handleResize = () => {\n setIsDesktop(window.innerWidth >= 768); // 768px is standard tablet/mobile breakpoint\n };\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n useEffect(() => {\n window.addEventListener(\"react:open\", openHandler);\n if (props.open) {\n openHandler();\n }\n return () => {\n window.removeEventListener(\"react:open\", openHandler);\n };\n }, []);\n useEffect(() => {\n setIsLoadingParlay(true);\n setParlayComputeState('idle');\n setParlayBooks({});\n }, [games]);\n\n const geoCheck = (book) => {\n if (!isRealMoney) {\n return;\n }\n if (props.email === 'matthew@prop-odds.com' || props.email === 'jmurph0912@gmail.com') {\n placeBet('test');\n return;\n }\n setErrorText('');\n setSuccessText('');\n setIsLoading(true);\n setIsLoadingWager(true);\n setLoadingText('Checking your location...');\n\n let url = '';\n if (book === 'novig') {\n url = '/wager/novig/geo';\n } else if (book === 'prophetx') {\n url = '/wager/prophetx/geo';\n }\n fetch(url, {\n 'method': 'POST',\n 'body': JSON.stringify({}),\n 'headers': {\n 'Content-Type': \"application/json\",\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n if (!data.success) {\n setErrorText(data.details);\n if (!!data.url) {\n setErrorUrl(data.url);\n }\n setIsLoading(false);\n setIsLoadingWager(false);\n } else {\n const lic = data.license;\n const uid = data.uid;\n const geoClient = GcHtml5.createClient();\n geoClient.setUserId(uid);\n geoClient.setReason('Play on BeeBettor');\n geoClient.setLicense(lic);\n\n geoClient.events.on('hint', function(reason, data) {\n //e.g. show hint messages to user\n setErrorText(reason);\n }).on('engine.success', function(text, xml) {\n placeBet(text);\n }).on('*.failed', function(code, message) {\n setErrorText('');\n setSuccessText('');\n setIsLoading(false);\n setIsLoadingWager(false);\n setLoadingText('');\n\n if (this.event === 'revise.failed' || this.event === 'config.failed' || this.event === 'engine.failed') {\n if (code === geoClient.ErrorCodes.CLNT_ERROR_NETWORK_CONNECTION || code === geoClient.ErrorCodes.CLNT_ERROR_LICENSE_INVALID_FORMAT || code === geoClient.ErrorCodes.CLNT_ERROR_LICENSE_EXPIRED) {\n setErrorText('Geo location service error. Try again.');\n } else if (code === geoClient.ErrorCodes.CLNT_ERROR_REQUEST_GEOLOCATION_IN_PROGRESS) {\n console.log('wtf???');\n //it's safe to be ignored, or we can wait for previous request to complete and try again\n } else {\n setErrorText('GeoComply Service Error. Please try again later.')\n }\n } else if (this.event === 'browser.failed') {\n if (code === geoClient.ErrorCodes.CLNT_ERROR_BROWSER_GEOLOCATION_DENIED) {\n setErrorText('Browser geolocation denied. Please enable location and try again.');\n } else {\n setErrorText('Browser geolocation failed. Please try again later.');\n }\n }\n });\n // Request Geolocation\n geoClient.request();\n }\n }).catch(err => {\n console.error(err);\n const statusCode = err.status;\n alert(`Error ${statusCode} occurred.`);\n });\n }\n\n const novigPlay = () => {\n if (!isRealMoney) {\n return;\n }\n\n setSuccessText('');\n setIsLoadingWager(true);\n setLoadingText('Executing play...');\n const leg = Object.values(games)[0][0];\n const ockey = leg.ockey;\n const odds = +leg.odds;\n const stakeVal = +stake;\n const body = {ocKey: ockey, odds: odds, stake: stakeVal};\n fetch('/wager/novig', {\n 'method': 'POST',\n 'body': JSON.stringify(body),\n 'headers': {\n 'Content-Type': \"application/json\",\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n setIsLoading(false);\n setLoadingText('');\n if (!data.success) {\n setErrorText(data.details);\n if (!!data.url) {\n setErrorUrl(data.url);\n }\n } else {\n setSuccessText('Play successful!');\n clearSlip();\n }\n setIsLoadingWager(false);\n }).catch(err => {\n console.error(err);\n const statusCode = err.status;\n alert(`Error ${statusCode} occurred.`);\n });\n }\n\n const getMostRecentPlay = () => {\n // get most recent play from history\n // wait 1 second before fetching most recent play\n setTimeout(() => {\n fetch('/wager/orderbook/plays?is_open=true').then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n if (!data.success) {\n return;\n }\n const plays = data.plays;\n if (plays.length === 0) {\n return;\n }\n const prophetxPlay = plays.find(p => p.bookie === 'prophetx');\n if (!prophetxPlay) {\n return;\n }\n const play = plays[0];\n setDisplayPlay(play);\n });\n }, 1000);\n }\n\n const betopenlyRequest = (body) => {\n fetch('/wager/betopenly', {\n 'method': 'POST',\n 'body': JSON.stringify(body),\n 'headers': {\n 'Content-Type': \"application/json\",\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n setIsLoading(false);\n setLoadingText('');\n if (!data.success) {\n setErrorText(data.details);\n if (!!data.url) {\n setErrorUrl(data.url);\n }\n } else {\n setSuccessText('Play successful!');\n clearSlip();\n // getMostRecentPlay();\n }\n setIsLoadingWager(false);\n }).catch(err => {\n console.error(err);\n const statusCode = err.status;\n alert(`Error ${statusCode} occurred.`);\n });\n }\n\n const placeBetopenlyBet = () => {\n setSuccessText('');\n setIsLoadingWager(true);\n setLoadingText('Executing play...');\n const leg = Object.values(games)[0][0];\n const ockey = leg.ockey;\n const odds = +leg.odds;\n const stakeVal = +stake;\n\n\n setErrorText('');\n setSuccessText('');\n setIsLoading(true);\n setIsLoadingWager(true);\n setLoadingText('Checking your location...');\n navigator.geolocation.getCurrentPosition(position => {\n fetch('https://api.ipify.org?format=json', {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n }\n })\n .then(res => res.json())\n .then(data => {\n const lat = position.coords.latitude;\n const long = position.coords.longitude;\n const body = {\n ocKey: ockey,\n odds: odds,\n stake: stakeVal,\n is_desktop: isDesktop,\n is_share: !!props.is_share,\n lat: lat,\n long: long,\n ip: data.ip,\n };\n setLoadingText('Placing bet...');\n betopenlyRequest(body);\n })\n .catch(err => {\n console.error('Error fetching IP:', err);\n });\n });\n\n }\n \n const placeBet = (encrpytedText) => {\n if (!isRealMoney) {\n return;\n }\n if (!encrpytedText) {\n return;\n }\n setSuccessText('');\n setIsLoadingWager(true);\n setLoadingText('Executing play...');\n const leg = Object.values(games)[0][0];\n const ockey = leg.ockey;\n const odds = +leg.odds;\n const stakeVal = +stake;\n const body = {\n ocKey: ockey,\n odds: odds,\n stake: stakeVal,\n encrypted: encrpytedText,\n is_desktop: isDesktop,\n is_share: !!props.is_share,\n fill_or_kill: fillOrKill,\n };\n fetch('/wager/prophetx', {\n 'method': 'POST',\n 'body': JSON.stringify(body),\n 'headers': {\n 'Content-Type': \"application/json\",\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n setIsLoading(false);\n setLoadingText('');\n if (!data.success) {\n setErrorText(data.details);\n if (!!data.url) {\n setErrorUrl(data.url);\n }\n } else {\n setSuccessText('Play successful!');\n clearSlip();\n // getMostRecentPlay();\n }\n setIsLoadingWager(false);\n }).catch(err => {\n console.error(err);\n const statusCode = err.status;\n alert(`Error ${statusCode} occurred.`);\n });\n }\n\n if (isHidden) {\n return <>;\n }\n return (\n
\n
\n
\n
\n
setTab('betslip')} className={`${tab === 'betslip' ? 'border-b-4' : 'border-b-0'} text-neutral-600 dark:text-dark-text-secondary py-2 px-4 border-yellow-300 hover:bg-gray-100 dark:hover:bg-dark-bg-primary cursor-pointer rounded-t-lg`}>Plays
\n
setTab('scratchpad')} className={`${tab === 'scratchpad' ? 'border-b-4' : 'border-b-0'} text-neutral-600 dark:text-dark-text-secondary py-2 px-4 border-yellow-300 hover:bg-gray-100 dark:hover:bg-dark-bg-primary cursor-pointer rounded-t-lg`}>Scratchpad
\n
SGP
\n
\n\n
\n \n \n \n \n
\n
\n\n {isLoading &&\n
\n
\n \n \n \n \n Loading...\n
\n

{loadingText}

\n
\n }\n\n {/*Betslip Tab*/}\n {!isLoading && (tab === 'betslip') &&\n <>\n
\n {!!errorUrl && {errorText}}\n {!errorUrl &&

{errorText}

}\n

{successText}

\n
\n {\n !!displayPlay &&
\n }\n {\n Object.values(games).length > 0 &&\n
\n

Clear

\n
\n }\n
\n {!props.is_auth &&\n
\n Sign in to make some plays!\n
\n }\n {props.is_auth && Object.values(games).length === 0 && !displayPlay &&\n
\n \"external\n

Add some plays to get started!

\n
\n }\n {Object.values(games).map((legs, index) => )}\n
\n \n }\n\n {/*Scratchpad Tab*/}\n {!isLoading &&\n
\n
\n {!!errorUrl && {errorText}}\n {!errorUrl &&

{errorText}

}\n

{successText}

\n
\n {props.is_auth &&\n
\n \n
\n }\n
\n }\n\n {/*Parlay Tab*/}\n {!isLoading && (tab === 'parlay') &&\n
\n {isLoadingParlay &&\n
\n
\n \n \n \n \n Loading...\n
\n

Computing parlay odds...

\n
\n }\n {!isLoadingParlay &&\n <>\n
\n

Refresh

\n
\n
\n {Object.values(games).reduce((acc, legs) => acc + legs.length, 0) <= 1 &&

Not enough plays selected.

}\n {Object.values(games).reduce((acc, legs) => acc + legs.length, 0) > 1 && parlayBooks.length === 0 &&

No results found.

}\n\n {null in parlayBooks && parlayBooks[null].length > 0 &&

All legs

}\n {null in parlayBooks && acc + legs.length, 0)} game={null} />}\n {Object.values(parlayBooks).length > 1 &&

By Game

}\n {Object.entries(parlayBooks).map(([gid, books], index) => {\n return (!!gid && gid !== 'null' && acc + legs.length, 0) }\n game={!!games[books[0].game_id] ? games[books[0].game_id][0].game_info.game : null } />);\n })}\n
\n \n }\n {!isLoadingParlay && showPaywall &&\n <>\n
\n \"points\"\n
\n \n
\n

Unlock SGP

\n
\n
\n
\n
\n \n }\n
\n }\n\n {!isLoading && (tab === 'betslip') && hasProphetBeta && Object.values(games).reduce((acc, legs) => acc + legs.length, 0) === 1 && (Object.values(games)[0][0].bookie_key === 'prophetx') &&\n
\n
\n

Using Prophet Cash

\n
\n setIsRealMoney(!isRealMoney)}\n className=\"h-4 w-4 rounded border-gray-300 text-gray-500 dark:text-dark-text-secondary focus:ring-gray-300\" \n />\n
\n
\n\n
\n
\n

ODDS

\n
\n \n
\n
\n
\n
\n

Cancel if Unmatched

\n
\n \n \n \n \n If \"on\", your bet will only be placed if it can be filled within 2 seconds. If not, the bet will be cancelled.\n \n
\n
\n
\n \n
\n
\n
\n\n {isLoadingWager &&\n
\n \n
\n }\n\n\n
\n
\n

STAKE

\n
\n

$

\n \n
\n
\n
\n

TO WIN

\n
\n

$

\n {}} />\n
\n
\n
\n
geoCheck('prophetx')} className={`${isRealMoney ? 'cursor-pointer text-black hover:scale-[1.02] bg-gradient-to-r from-yellow-300 to-amber-500' : 'bg-gray-300 text-gray-500'} mb-4 items-center flex flex-row gap-4 rounded-lg text-xl font-bold shadow-md w-full text-center py-2 px-8 duration-100`}>\n

PLAY

\n
\n
\n }\n\n\n {!isLoading && (tab === 'betslip') && hasBetopenlyBeta && Object.values(games).reduce((acc, legs) => acc + legs.length, 0) === 1 && (Object.values(games)[0][0].bookie_key === 'betopenly') &&\n
\n\n {isLoadingWager &&\n
\n \n
\n }\n\n\n
\n
\n

STAKE

\n
\n

$

\n \n
\n
\n
\n

TO WIN

\n
\n

$

\n {}} />\n
\n
\n
\n
\n

PLAY

\n
\n
\n }\n\n\n {!isLoading && (tab === 'betslip') && hasNovigBeta && Object.values(games).reduce((acc, legs) => acc + legs.length, 0) === 1 && (Object.values(games)[0][0].bookie_key === 'novig') &&\n
\n
\n
setIsRealMoney(false)} className={`${isRealMoney ? 'bg-gray-200 hover:bg-gray-300 dark:bg-dark-bg-secondary' : 'dark:bg-dark-bg-primary'} items-center flex flex-row gap-1 px-4 h-fit cursor-pointer text-center py-2 rounded-l-lg`}>\n \"points\"\n

Novig Coins

\n
\n
setIsRealMoney(true)} className={`${isRealMoney ? 'dark:bg-dark-bg-primary' : 'bg-gray-200 hover:bg-gray-300 dark:bg-dark-bg-secondary'} items-center flex flex-row gap-1 px-4 h-fit cursor-pointer text-center py-2 rounded-r-lg`}>\n \"cash\"\n

Novig Cash

\n
\n
\n\n {isLoadingWager &&\n
\n \n
\n }\n\n\n
\n
\n

STAKE

\n
\n

$

\n \n
\n
\n
\n

TO WIN

\n
\n

$

\n {}} />\n
\n
\n
\n
geoCheck('novig')} className={`${isRealMoney ? 'cursor-pointer text-black hover:scale-[1.02] bg-gradient-to-r from-yellow-300 to-amber-500' : 'bg-gray-300 text-gray-500'} mb-4 items-center flex flex-row gap-4 rounded-lg text-xl font-bold shadow-md w-full text-center py-2 px-8 duration-100`}>\n

PLAY

\n
\n
\n }\n\n
\n
\n )\n}\n\nexport default BetSlip;\n","import React, {useEffect, useState} from 'react';\nimport Loader from \"../../Chat/components/utils/Loader\";\nimport cashImg from \"../../../images/pcash.svg\";\nimport nvgCashImg from \"../../../images/novigcash.png\";\n\nimport Play from \"./Play\";\n\nconst History = () => {\n const [isLoadingHeader, setIsLoadingHeader] = useState(true);\n const [isLoading, setIsLoading] = useState(true);\n const [open, setOpen] = useState(true);\n const [plays, setPlays] = useState([]);\n\n const [isPxConnected, setIsPxConnected] = useState(false);\n const [isNvgConnected, setIsNvgConnected] = useState(false);\n\n const [pxBalance, setPxBalance] = useState(null);\n const [nvgBalance, setNvgBalance] = useState(null);\n\n useEffect(() => {\n fetch('/profile/accounts/connected', {\n 'headers': {\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n setIsPxConnected(data.prophetx);\n setIsNvgConnected(data.novig);\n if (data.prophetx || data.novig) {\n getBalance();\n getPlays();\n } else {\n setIsLoadingHeader(false);\n setIsLoading(false);\n }\n }).catch(err => {\n console.error(err);\n // alert(`Error ${statusCode} occurred.`);\n });\n }, []);\n\n useEffect(() => {\n if (!isLoadingHeader) {\n getPlays();\n }\n }, [open]);\n\n const getBalance = () => {\n fetch('/wager/orderbook/balances', {\n 'headers': {\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n setPxBalance(data.prophetx);\n setNvgBalance(data.novig);\n setIsLoadingHeader(false);\n }).catch(err => {\n console.error(err);\n // alert(`Error ${statusCode} occurred.`);\n });\n }\n\n const getPlays = () => {\n setPlays([]);\n setIsLoading(true);\n fetch(`/wager/orderbook/plays?is_open=${open}`, {\n 'headers': {\n 'X-CSRF-Token': document.querySelector(\"meta[name='csrf-token']\").content,\n }\n }).then(res => {\n if (!res.ok) {\n return Promise.reject(res);\n }\n return res.json();\n }).then(data => {\n if (data.success) {\n setPlays(data.plays);\n }\n setIsLoading(false);\n // setHasNovigBeta(data.valid);\n }).catch(err => {\n console.error(err);\n const statusCode = err.status;\n // alert(`Error ${statusCode} occurred.`);\n });\n }\n\n const renderHeader = () => {\n if (isLoadingHeader) {\n return
\n \n \n \n \n Loading...\n
\n }\n return (\n
\n {isPxConnected &&\n
\n

ProphetX Balance

\n
\n \"cash\"\n
{pxBalance}
\n
\n
\n }\n {!isPxConnected &&\n \n
\n
\n \"cash\"\n
Connect to ProphetX
\n
\n
\n
\n }\n {isNvgConnected &&\n
\n

Novig Balance

\n
\n \"cash\"\n
{nvgBalance}
\n
\n
\n }\n {!isNvgConnected &&\n \n
\n
\n \"cash\"\n
Connect to Novig
\n
\n
\n
\n }\n
\n )\n }\n\n return (\n
\n
\n
\n

Orders

\n

View your order history from ProphetX and Novig.

\n
\n\n {renderHeader()}\n
\n
\n\n
\n
\n \n\n setOpen(false)}\n className={`h-fit w-1/2 cursor-pointer text-center py-2 font-bold rounded-lg ${!open ? 'bg-yellow-300 text-black hover:bg-yellow-400' : 'hover:bg-gray-100 dark:hover:bg-dark-bg-secondary'}`}\n >\n Closed \n \n
\n
\n\n
\n {isLoading && }\n {!isLoading && !isPxConnected && !isNvgConnected &&\n
\n power_off\n

Connect to ProphetX or Novig to view your order history.

\n
\n }\n {!isLoading && (isPxConnected || isNvgConnected) && plays.length === 0 &&\n
\n search_off\n

No orders found.

\n
\n }\n
\n {!isLoading && plays.length > 0 && plays.map((play) => )}\n
\n
\n
\n )\n}\n\n\n\n// autoSettled\n// : \n// null\n// averageOdds\n// : \n// \"+100\"\n// children\n// : \n// []\n// commission\n// : \n// 0\n// createdAt\n// : \n// \"2024-12-11T21:09:44+0000\"\n// displayLine\n// : \n// \"12.5\"\n// displayOdds\n// : \n// \"+100\"\n// id\n// : \n// 64430758\n// isHotData\n// : \n// false\n// line\n// : \n// \"12.5\"\n// market\n// : \n// {id: 150001853, name: 'Josh Hart Total Points', type: 'total'}\n// marketLineName\n// : \n// \"Josh Hart Total Points\"\n// matchedDetails\n// : \n// [{…}]\n// matchedStake\n// : \n// 11.82\n// matchingStatus\n// : \n// \"fully_matched\"\n// odds\n// : \n// 100\n// outcome\n// : \n// {id: 12, name: 'over 12.5'}\n// refId\n// : \n// \"partner_9745f15c-6749-4a66-8a4c-efa5c39afdbc\"\n// sport\n// : \n// {name: 'Basketball'}\n// sportEvent\n// : \n// {id: 20022238, status: 'live', type: null, name: 'Atlanta Hawks at New York Knicks', displayName: '', …}\n// stake\n// : \n// 11.82\n// status\n// : \n// \"open\"\n// totalBets\n// : \n// 1\n// totalStake\n// : \n// 0\n// tournament\n// : \n// {name: 'NBA'}\n// unmatchedStake\n// : \n// 0\n// winningStatus\n// : \n// \"tbd\"\n\nexport default History;","import ReactOnRails from 'react-on-rails';\nimport BetSlip from \"../bundles/BetSlip/components/BetSlip\";\nimport History from \"../bundles/BetSlip/components/History\";\n\nReactOnRails.register({\n BetSlip,\n History,\n});\n"],"names":["Loader","darkness","React","role","className","viewBox","fill","xmlns","d","toTitleCase","str","replace","txt","charAt","toUpperCase","substring","bookToFullImgSrc","s","src","toLowerCase","pinnyFull","fdFull","dkFull","mgmFull","barstoolFull","kambiFull","kalshiFull","czrFull","pbFull","kuttFull","bet105Full","rebetFull","sporttradeFull","bookmakerFull","betopenlyFull","circaFull","fnFull","hrFull","fliffFull","b365Full","bolFull","novigFull","prophetFull","bppFull","bookKeyToDbName","book","trim","americanToDec","odds","Math","abs","Play","play","isLoadingShare","setIsLoadingShare","useState","isWin","status","isLoss","isPending","computePayout","stake","toFixed","console","log","marketTitle","key","id","bookie","pxLogoBlack","alt","height","width","nvgLogoBlack","pxLogoWhite","nvgLogoWhite","onClick","async","shareUrl","atBookie","url","eventTitle","outcomeTitle","body","res","fetch","JSON","stringify","document","querySelector","content","ok","Error","data","json","deeplink","encodeURIComponent","err","error","genShareUrl","window","open","trophyImg","decodeURIComponent","style","fontSize","color","Date","eventTs","toLocaleString","month","day","hour","minute","hour12","cashImg","nvgCashImg","BOOKIES","EditableOutcome","oc","updateHandler","removeHandler","isMain","showBookieModal","setShowBookieModal","searchTerm","setSearchTerm","useEffect","handleEscape","event","handleClickOutside","target","closest","addEventListener","removeEventListener","filteredBookies","filter","includes","strokeWidth","stroke","strokeLinecap","strokeLinejoin","type","autoFocus","placeholder","value","onChange","e","map","onBlur","numValue","parseFloat","isNaN","otherSideOdds","Scratchpad","targetBookie","ockey","DEFAULT_OUTCOME","now","setOc","comparables","setComparables","weights","setWeights","selectedWeight","setSelectedWeight","kelly","setKelly","bankroll","setBankroll","probit","setProbit","multiplicative","setMultiplicative","additive","setAdditive","power","setPower","reset","then","Promise","reject","dataWithIds","i","sort","a","b","targetData","find","catch","statusCode","alert","kellyValue","bankrollValue","timeoutId","setTimeout","updateScratchpadState","clearTimeout","c","computeKelly","item","kellyPrefix","locKelly","betAmount","floor","newOc","w","uaw_id","weight","api_id","name","devig","weight_id","parseInt","ev","fv","comp","index","updateComparableOc","newComparables","_","removeComparable","Leg","leg","removeLeg","copyToScratchpad","isLoading","setIsLoading","hasDeeplink","is_active","bookie_key","cents","liquidity","externalLinkIcon","participant","participant_name","handicap","mkt","market_key","replaceAll","cross","GameView","initLegs","isCollapsed","legRemoveHandlerSlip","league","game_info","game","legs","setLegs","collapsed","setCollapsed","legRemoveHandler","ocKey","newLegs","length","toggleExpanded","away_team_img","away_team","split","at","home_team_img","home_team","DateTime","fromISO","start_timestamp","toRelative","rightArrow","downArrow","ParlaySheet","parlayBooks","numLegs","goTo","deep","book_key","props","isDesktop","setIsDesktop","setStake","toWin","setToWin","wagerOdds","setWagerOdds","fillOrKill","setFillOrKill","tab","setTab","isRealMoney","setIsRealMoney","hasProphetBeta","setHasProphetBeta","hasNovigBeta","setHasNovigBeta","hasBetopenlyBeta","setHasBetopenlyBeta","errorText","setErrorText","errorUrl","setErrorUrl","successText","setSuccessText","showPaywall","setShowPaywall","parlayComputeState","setParlayComputeState","isLoadingParlay","setIsLoadingParlay","setParlayBooks","isHidden","setIsHidden","loadingText","setLoadingText","isLoadingWager","setIsLoadingWager","games","setGames","scratchpadTargetBookie","setScratchpadTargetBookie","scratchpadOcky","setScratchpadOcky","displayPlay","setDisplayPlay","clearSlip","curGames","newGames","gid","Object","entries","computeParlay","values","reduce","acc","concat","ocKeys","books","objs","forEach","game_id","push","changeStake","v","decOdds","openHandler","is_auth","valid","text","parse","legsByOckey","recentSlipAdds","Array","from","children","child","dataset","fill_or_kill","propOdds","decPropOdds","handleResize","innerWidth","geoCheck","email","placeBet","success","lic","license","uid","geoClient","GcHtml5","createClient","setUserId","setReason","setLicense","events","on","reason","xml","code","message","this","ErrorCodes","CLNT_ERROR_NETWORK_CONNECTION","CLNT_ERROR_LICENSE_INVALID_FORMAT","CLNT_ERROR_LICENSE_EXPIRED","CLNT_ERROR_REQUEST_GEOLOCATION_IN_PROGRESS","CLNT_ERROR_BROWSER_GEOLOCATION_DENIED","request","details","encrpytedText","encrypted","is_desktop","is_share","openParlayTab","closeSlip","x1","y1","x2","y2","href","emptyIcon","parlayBlurImg","checked","autoCorrect","placeBetopenlyBet","stakeVal","navigator","geolocation","getCurrentPosition","position","method","headers","lat","coords","latitude","long","longitude","ip","betopenlyRequest","nvgCoinImg","History","isLoadingHeader","setIsLoadingHeader","setOpen","plays","setPlays","isPxConnected","setIsPxConnected","isNvgConnected","setIsNvgConnected","pxBalance","setPxBalance","nvgBalance","setNvgBalance","prophetx","novig","getBalance","getPlays","rel","ReactOnRails","BetSlip"],"sourceRoot":""}