@maestro_io/maestro-web-sdk 2.1.3 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/dist/MaestroEventDelegate.d.ts +1 -0
  2. package/dist/components/atoms/SvgIcon/Icon.d.ts +0 -2
  3. package/dist/components/core/ScrollableContainer/ScrollableContainer.d.ts +3 -1
  4. package/dist/external/spatial-navigation/spatialNavigation.d.ts +1 -1
  5. package/dist/interfaces/IMaestroEvent.d.ts +14 -0
  6. package/dist/interfaces/IMaestroEventDelegate.d.ts +19 -6
  7. package/dist/maestro-web-sdk.umd.js +3 -3
  8. package/dist/maestro-web-sdk.umd.js.map +1 -1
  9. package/dist/models/IPanel.d.ts +1 -2
  10. package/dist/modules/stats/interfaces/IStats.d.ts +38 -12
  11. package/dist/modules/stats/mocks.d.ts +0 -80
  12. package/dist/modules/stats/utils/driveSummaryUtils.d.ts +18 -0
  13. package/dist/modules/stats/view/ActiveAthletes/ActiveAthletes.d.ts +6 -19
  14. package/dist/modules/stats/view/DriveSummary/DrivePlayCard.d.ts +26 -0
  15. package/dist/modules/stats/view/DriveSummary/DriveSummary.d.ts +24 -0
  16. package/dist/modules/stats/view/DriveSummary/index.d.ts +2 -0
  17. package/dist/modules/stats/view/GameLeaders/GameLeaders.d.ts +15 -4
  18. package/dist/modules/stats/view/MatchPredictor/MatchPredictorView.d.ts +13 -48
  19. package/dist/modules/stats/view/RecentGames/RecentGames.d.ts +10 -21
  20. package/dist/modules/stats/view/StatsItemView.d.ts +19 -0
  21. package/dist/modules/stats/view/StatsView.d.ts +3 -3
  22. package/dist/modules/stats/view/TeamStats/TeamStatsView.d.ts +2 -4
  23. package/dist/modules/stats/view/Teams/Teams.d.ts +10 -26
  24. package/dist/modules/stats/view/WinProbability/WinProbability.d.ts +10 -21
  25. package/dist/modules/stats/view-model/StatsViewModel.d.ts +149 -5
  26. package/package.json +1 -1
  27. package/dist/MaestroEventDelegate.js +0 -60
  28. package/dist/components/atoms/BaseButton/BaseButton.js +0 -11
  29. package/dist/components/atoms/BaseButton/index.js +0 -2
  30. package/dist/components/atoms/Image/index.js +0 -30
  31. package/dist/components/atoms/Rive/index.js +0 -53
  32. package/dist/components/atoms/SvgIcon/BetGeneralIcon.js +0 -9
  33. package/dist/components/atoms/SvgIcon/BetsIcon.js +0 -11
  34. package/dist/components/atoms/SvgIcon/BetsWarningIcon.js +0 -11
  35. package/dist/components/atoms/SvgIcon/CheckmarkIcon.js +0 -6
  36. package/dist/components/atoms/SvgIcon/CollapseIcon.js +0 -6
  37. package/dist/components/atoms/SvgIcon/ExpandIcon.js +0 -6
  38. package/dist/components/atoms/SvgIcon/FantasyIcon.d.ts +0 -6
  39. package/dist/components/atoms/SvgIcon/FantasyIcon.js +0 -8
  40. package/dist/components/atoms/SvgIcon/FlameIcon.js +0 -11
  41. package/dist/components/atoms/SvgIcon/Icon.js +0 -42
  42. package/dist/components/atoms/SvgIcon/KeyPlaysIcon.js +0 -10
  43. package/dist/components/atoms/SvgIcon/MobilePhoneIcon.js +0 -11
  44. package/dist/components/atoms/SvgIcon/PlayIcon.js +0 -8
  45. package/dist/components/atoms/SvgIcon/StatsIcon.js +0 -12
  46. package/dist/components/atoms/SvgIcon/TimesIcon.js +0 -6
  47. package/dist/components/atoms/SvgIcon/WarningIcon.js +0 -8
  48. package/dist/components/atoms/SvgIcon/index.js +0 -2
  49. package/dist/components/core/App/App.js +0 -41
  50. package/dist/components/core/App/index.js +0 -2
  51. package/dist/components/core/OverlayContainer.js +0 -58
  52. package/dist/components/core/PanelManager/PanelManager.js +0 -80
  53. package/dist/components/core/PanelManager/index.js +0 -2
  54. package/dist/components/core/ScrollableContainer/FocusableItem.js +0 -38
  55. package/dist/components/core/ScrollableContainer/ScrollableContainer.js +0 -166
  56. package/dist/components/core/ScrollableContainer/index.js +0 -2
  57. package/dist/components/molecules/ActionButton/ActionButton.js +0 -10
  58. package/dist/components/molecules/ActionButton/index.js +0 -2
  59. package/dist/components/molecules/Overlay/Overlay.js +0 -139
  60. package/dist/components/molecules/Overlay/index.js +0 -2
  61. package/dist/components/molecules/PanelNavButton/PanelNavButton.js +0 -40
  62. package/dist/components/molecules/PanelNavButton/index.js +0 -2
  63. package/dist/components/molecules/SegmentButton/SegmentButton.js +0 -10
  64. package/dist/components/molecules/SegmentButton/index.js +0 -2
  65. package/dist/components/molecules/WatchButton/WatchButton.js +0 -15
  66. package/dist/components/molecules/WatchButton/index.js +0 -2
  67. package/dist/components/organisms/PanelNavigation/PanelNavigation.js +0 -71
  68. package/dist/components/organisms/PanelNavigation/index.js +0 -2
  69. package/dist/components/organisms/SegmentController/SegmentController.js +0 -68
  70. package/dist/components/organisms/SegmentController/index.js +0 -2
  71. package/dist/external/AxiosNetworkClient.js +0 -83
  72. package/dist/external/LocalStorageCacheManager.js +0 -213
  73. package/dist/external/ReactRenderer.js +0 -86
  74. package/dist/external/mocks/MockExternalNetworkClient.js +0 -161
  75. package/dist/external/ports/cacheManager.js +0 -1
  76. package/dist/external/ports/networkClient.js +0 -1
  77. package/dist/external/ports/renderer.js +0 -1
  78. package/dist/external/spatial-navigation/index.js +0 -3
  79. package/dist/external/spatial-navigation/measureLayout.js +0 -30
  80. package/dist/external/spatial-navigation/spatialNavigation.js +0 -864
  81. package/dist/external/spatial-navigation/utils.js +0 -6
  82. package/dist/external/spatial-navigation/visualDebugger.js +0 -76
  83. package/dist/external/spatial-navigation/withFocusable.js +0 -245
  84. package/dist/helpers/Observable.js +0 -37
  85. package/dist/helpers/deliver-focus.d.ts +0 -5
  86. package/dist/helpers/deliver-focus.js +0 -12
  87. package/dist/index.js +0 -192
  88. package/dist/interfaces/IMaestroEvent.js +0 -6
  89. package/dist/interfaces/IMaestroEventDelegate.js +0 -1
  90. package/dist/interfaces/IMaestroManager.js +0 -1
  91. package/dist/models/IModel.js +0 -1
  92. package/dist/models/IPanel.js +0 -53
  93. package/dist/models/ITheme.js +0 -20
  94. package/dist/models/IWinningBet.js +0 -1
  95. package/dist/modules/bets/interfaces/IBets.js +0 -1
  96. package/dist/modules/bets/mocks.js +0 -572
  97. package/dist/modules/bets/view/BetsView.js +0 -116
  98. package/dist/modules/bets/view/HotProps/HotPropsView.js +0 -139
  99. package/dist/modules/bets/view/SixPack/SixPackView.js +0 -103
  100. package/dist/modules/bets/view/TabLoadFailureView.js +0 -12
  101. package/dist/modules/bets/view/UserBets/BetResult/BetResult.js +0 -6
  102. package/dist/modules/bets/view/UserBets/BetsCard/BetsCard.js +0 -122
  103. package/dist/modules/bets/view/UserBets/BetsCard/BetsCardEvent.js +0 -34
  104. package/dist/modules/bets/view/UserBets/BetsCard/BetsCardFooter.js +0 -22
  105. package/dist/modules/bets/view/UserBets/Boost/Boost.js +0 -6
  106. package/dist/modules/bets/view/UserBets/OutcomeBadge/OutcomeBadge.js +0 -9
  107. package/dist/modules/bets/view/UserBets/Parlay/Parlay.js +0 -13
  108. package/dist/modules/bets/view/UserBets/Straight/Straight.js +0 -6
  109. package/dist/modules/bets/view/UserBets/Teaser/Teaser.js +0 -13
  110. package/dist/modules/bets/view/UserBets/UserBetsView.js +0 -114
  111. package/dist/modules/bets/view/components/Bet/Bet.js +0 -32
  112. package/dist/modules/bets/view/components/BetPill/BetPill.js +0 -6
  113. package/dist/modules/bets/view/components/BetsCard/BetsCard.js +0 -15
  114. package/dist/modules/bets/view/components/BetsCard/BetsCardHeader.js +0 -20
  115. package/dist/modules/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.js +0 -14
  116. package/dist/modules/bets/view/components/LocationWarning/LocationWarning.js +0 -16
  117. package/dist/modules/bets/view/components/PromoCodeBanner/PromoCodeBanner.js +0 -63
  118. package/dist/modules/bets/view/components/PromoCodeBanner/index.js +0 -1
  119. package/dist/modules/bets/view-model/BetsViewModel.js +0 -767
  120. package/dist/modules/key-plays/constants.js +0 -292
  121. package/dist/modules/key-plays/interfaces/IKeyPlays.js +0 -14
  122. package/dist/modules/key-plays/interfaces/IKeyPlaysResponse.js +0 -1
  123. package/dist/modules/key-plays/view/KeyPlayCardScoreTagView.js +0 -13
  124. package/dist/modules/key-plays/view/KeyPlayCardView.js +0 -120
  125. package/dist/modules/key-plays/view/KeyPlayErrorStateView.js +0 -58
  126. package/dist/modules/key-plays/view/KeyPlaysView.js +0 -166
  127. package/dist/modules/key-plays/view-model/KeyPlaysViewModel.js +0 -182
  128. package/dist/modules/stats/interfaces/IStats.js +0 -1
  129. package/dist/modules/stats/mocks.js +0 -686
  130. package/dist/modules/stats/utils/renderTeamStatistic.js +0 -16
  131. package/dist/modules/stats/utils.js +0 -62
  132. package/dist/modules/stats/view/ActiveAthletes/ActiveAthletes.js +0 -78
  133. package/dist/modules/stats/view/ActiveAthletes/CollapsedAthletes/CollapsedAthletes.js +0 -27
  134. package/dist/modules/stats/view/ActiveAthletes/ExpandedAthletes/ExpandedAthletes.js +0 -15
  135. package/dist/modules/stats/view/ActiveAthletes/index.js +0 -2
  136. package/dist/modules/stats/view/GameLeaders/GameLeaders.js +0 -9
  137. package/dist/modules/stats/view/GameLeaders/index.js +0 -2
  138. package/dist/modules/stats/view/MatchPredictor/DonutChart/DonutChart.js +0 -55
  139. package/dist/modules/stats/view/MatchPredictor/DonutChart/index.js +0 -1
  140. package/dist/modules/stats/view/MatchPredictor/MatchPredictorView.js +0 -66
  141. package/dist/modules/stats/view/MatchPredictor/index.js +0 -2
  142. package/dist/modules/stats/view/RecentGames/RecentGames.js +0 -22
  143. package/dist/modules/stats/view/RecentGames/index.js +0 -2
  144. package/dist/modules/stats/view/StatsQRCode/StatsQRCodeView.js +0 -38
  145. package/dist/modules/stats/view/StatsQRCode/index.js +0 -1
  146. package/dist/modules/stats/view/StatsView.js +0 -107
  147. package/dist/modules/stats/view/TeamStats/TeamStatsView.js +0 -69
  148. package/dist/modules/stats/view/TeamStats/index.js +0 -1
  149. package/dist/modules/stats/view/Teams/StatsCarousel.js +0 -14
  150. package/dist/modules/stats/view/Teams/StatsProgressBar.js +0 -18
  151. package/dist/modules/stats/view/Teams/Teams.js +0 -42
  152. package/dist/modules/stats/view/Teams/index.js +0 -2
  153. package/dist/modules/stats/view/WinProbability/WinProbability.js +0 -27
  154. package/dist/modules/stats/view/WinProbability/index.js +0 -2
  155. package/dist/modules/stats/view/components/AthletesStatistics/AthletesStatistics.js +0 -29
  156. package/dist/modules/stats/view/components/AthletesStatistics/StatisticTable.js +0 -12
  157. package/dist/modules/stats/view/components/AthletesStatistics/index.js +0 -2
  158. package/dist/modules/stats/view/index.js +0 -2
  159. package/dist/modules/stats/view-model/StatsViewModel.js +0 -90
  160. package/dist/services/BetsService.js +0 -102
  161. package/dist/services/NetworkManager/NetworkManager.js +0 -410
  162. package/dist/services/NetworkManager/errors.js +0 -45
  163. package/dist/services/StatsService.js +0 -68
  164. package/dist/services/ThemeManager/constants.js +0 -47
  165. package/dist/test-polyfills.js +0 -15
  166. package/dist/types/OverlayTypes.js +0 -4
  167. package/dist/view-models/MaestroEventViewModel.js +0 -168
  168. package/dist/view-models/OverlayViewModel.js +0 -222
  169. package/dist/view-models/PanelManagerViewModel.js +0 -80
  170. package/dist/view-models/ViewModel.js +0 -32
  171. package/dist/view-models/index.js +0 -59
@@ -1,42 +0,0 @@
1
- import React from 'react';
2
- import './TeamsView.styles.css';
3
- import Image from '@/components/atoms/Image';
4
- import { withFocusable, } from '@/external/spatial-navigation';
5
- import { CarouselSlider, StatsCarousel } from './StatsCarousel';
6
- import { renderTeamStatistic } from '../../utils/renderTeamStatistic';
7
- const Teams = (props) => {
8
- const teams = [props.homeTeam, props.awayTeam];
9
- return (React.createElement("section", { className: "stats-teams-view focus-ring", "data-focused": props.focused, style: {
10
- '--home-team': `#${props.homeTeam.color}`,
11
- '--away-team': `#${props.awayTeam.color}`,
12
- }, "data-live": props.isLive },
13
- React.createElement("div", { className: "stats-teams-view-header" }, teams.map((team) => (React.createElement("div", { key: team.id, className: "stats-team" },
14
- React.createElement(Image, { src: team.logo, alt: team.name, crossOrigin: "anonymous" }),
15
- React.createElement("div", null,
16
- React.createElement("span", { className: props.isLive ? 'T05_ALT' : 'T30' }, team.abbreviation),
17
- React.createElement("p", { className: "T02" }, team.record)))))),
18
- props.isLive && (React.createElement("div", { className: "statistics" },
19
- React.createElement("table", { className: "statistics-table" },
20
- React.createElement("thead", null,
21
- React.createElement("tr", null,
22
- React.createElement("th", { className: "T10" }),
23
- props.linescoresHeader.map((header) => (React.createElement("th", { key: header, className: "T10" }, header))))),
24
- React.createElement("tbody", null, teams.map((team) => (React.createElement("tr", { key: team.id },
25
- React.createElement("td", { className: "T30" }, team.name),
26
- team.linescores.map((lineScore, index) => (React.createElement("td", { key: `${lineScore}-${index}`, className: "T10" }, lineScore)))))))),
27
- props.statistics && props.statistics.length > 0 && (React.createElement(StatsCarousel, { itemsLength: props.statistics.length }, props.statistics.map((statistic) => (React.createElement(CarouselSlider, { itemsLength: props.statistics.length, key: statistic.displayName }, renderTeamStatistic({
28
- statisticName: statistic.displayName,
29
- firstDisplayValue: statistic.homeTeamValue,
30
- secondDisplayValue: statistic.awayTeamValue,
31
- awayProgressValue: statistic.awayTeamValue,
32
- homeProgressValue: statistic.homeTeamValue,
33
- classNames: {
34
- container: 'score-statistics',
35
- header: 'score-statistics-header',
36
- firstValue: 'T30',
37
- secondValue: 'T30',
38
- statisticName: 'statistic-name T02',
39
- },
40
- }))))))))));
41
- };
42
- export default withFocusable()(Teams);
@@ -1,2 +0,0 @@
1
- import Teams from './Teams';
2
- export default Teams;
@@ -1,27 +0,0 @@
1
- import React from 'react';
2
- import './WinProbability.styles.css';
3
- import { withFocusable, } from '@/external/spatial-navigation';
4
- import Image from '@/components/atoms/Image';
5
- const WinProbability = (props) => {
6
- return (React.createElement("section", { className: "win-probability focus-ring", "data-focused": props.focused },
7
- React.createElement("h5", { className: "T05_ALT" }, "Win Probability"),
8
- React.createElement("div", { className: "win-probability-card" }, [props.awayTeam, props.homeTeam].map((team, index) => {
9
- return (React.createElement("div", { className: "team", key: team.id },
10
- React.createElement(Image, { src: team.logo, alt: `${team.abbreviation} logo`, crossOrigin: "anonymous" }),
11
- React.createElement("div", { className: "info" },
12
- React.createElement("span", { className: "T60" }, team.winPercentage ? `${team.winPercentage}%` : '–'),
13
- React.createElement("div", { className: "name T01" },
14
- index === 0 ? React.createElement(AwayTeamChartLine, null) : React.createElement(HomeTeamChartLine, null),
15
- React.createElement("span", null, team.abbreviation)))));
16
- })),
17
- React.createElement(Image, { src: props.chartImageUrl, alt: "Win Probability Chart", crossOrigin: "anonymous" })));
18
- };
19
- const AwayTeamChartLine = () => {
20
- return (React.createElement("svg", { width: "25", height: "4", viewBox: "0 0 25 4", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
21
- React.createElement("path", { d: "M2.33337 2H22.3334", stroke: "white", strokeWidth: "4", strokeLinecap: "round" })));
22
- };
23
- const HomeTeamChartLine = () => {
24
- return (React.createElement("svg", { width: "25", height: "4", viewBox: "0 0 25 4", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
25
- React.createElement("path", { d: "M2.66992 2H22.6699", stroke: "white", strokeWidth: "4", strokeLinecap: "round", strokeDasharray: "2 7" })));
26
- };
27
- export default withFocusable()(WinProbability);
@@ -1,2 +0,0 @@
1
- import WinProbability from './WinProbability';
2
- export default WinProbability;
@@ -1,29 +0,0 @@
1
- import React from 'react';
2
- import StatisticsTable from './StatisticTable';
3
- import Image from '@/components/atoms/Image';
4
- import { withFocusable, } from '@/external/spatial-navigation';
5
- import './AthleteStatistics.styles.css';
6
- const AthletesStatistics = (props) => {
7
- const item = props.item;
8
- return (React.createElement("div", { className: "athletes-statistics focus-ring", "data-focused": props.focused },
9
- !!item.displayName && (React.createElement("span", { className: "T05_ALT" }, item.displayName)),
10
- React.createElement("div", { className: "leaders-wrapper" }, [item.awayAthlete, item.homeAthlete].map((athlete) => {
11
- return (React.createElement("div", { className: "leader", key: athlete.id + item.displayName },
12
- React.createElement("div", { className: "image-wrapper T02", "data-position": athlete.position },
13
- React.createElement(Image, { src: athlete.headshot, alt: `${item.displayName} ${athlete.displayName} Headshot Image` })),
14
- React.createElement("div", { className: "leader-info" },
15
- React.createElement("div", { className: "main-statistic T05_ALT" },
16
- athlete.shortName,
17
- ' ',
18
- React.createElement("span", { className: "athlete-number T02" },
19
- "#",
20
- athlete.jersey)),
21
- Array.isArray(athlete.statistics) &&
22
- !!athlete.statistics.length && (React.createElement("div", { className: "main-statistic T30" },
23
- athlete.statistics[0].displayValue,
24
- ' ',
25
- React.createElement("span", { className: "athlete-points T02" }, athlete.statistics[0].abbreviation))))));
26
- })),
27
- React.createElement(StatisticsTable, { item: item })));
28
- };
29
- export default withFocusable()(AthletesStatistics);
@@ -1,12 +0,0 @@
1
- import React from 'react';
2
- const StatisticsTable = (props) => {
3
- return (React.createElement("table", { className: "athletes-statistics-table T10" },
4
- React.createElement("tbody", null, props.item.awayAthlete.statistics.slice(1).map((statistic, index) => {
5
- return (React.createElement("tr", { key: statistic.abbreviation },
6
- React.createElement("td", null, statistic.displayValue),
7
- React.createElement("td", null, statistic.abbreviation),
8
- React.createElement("td", null, props.item.homeAthlete.statistics[index + 1].displayValue ||
9
- '0')));
10
- }))));
11
- };
12
- export default StatisticsTable;
@@ -1,2 +0,0 @@
1
- import AthletesStatistics from './AthletesStatistics';
2
- export default AthletesStatistics;
@@ -1,2 +0,0 @@
1
- export { default } from './StatsView';
2
- export { default as TeamStatsView } from './TeamStats';
@@ -1,90 +0,0 @@
1
- import { Observable } from '../../../helpers/Observable';
2
- import { ViewModel } from '../../../view-models/ViewModel';
3
- import { MOCK_STATS_API_PRE_GAME_RESPONSE } from '../mocks';
4
- // TODO: Implement actual ViewModel
5
- export class StatsViewModel extends ViewModel {
6
- constructor(_eventId, // TODO: Will be used when implementing real API calls
7
- options = {}) {
8
- super();
9
- // Observable properties
10
- Object.defineProperty(this, "statsData", {
11
- enumerable: true,
12
- configurable: true,
13
- writable: true,
14
- value: new Observable(null)
15
- });
16
- Object.defineProperty(this, "isDataLoading", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: new Observable(true)
21
- });
22
- Object.defineProperty(this, "hasEverSuccessfullyLoaded", {
23
- enumerable: true,
24
- configurable: true,
25
- writable: true,
26
- value: new Observable(false)
27
- });
28
- // Properties
29
- Object.defineProperty(this, "useMockData", {
30
- enumerable: true,
31
- configurable: true,
32
- writable: true,
33
- value: false
34
- });
35
- Object.defineProperty(this, "initialized", {
36
- enumerable: true,
37
- configurable: true,
38
- writable: true,
39
- value: false
40
- });
41
- // TODO: Store eventId when implementing real API calls
42
- // this.eventId = _eventId;
43
- this.useMockData = options.useMockData || false;
44
- }
45
- /**
46
- * Initialize the ViewModel and start data fetching
47
- */
48
- async init() {
49
- await this.fetchNewData();
50
- this.initialized = true;
51
- }
52
- /**
53
- * Clean up resources when the ViewModel is no longer needed
54
- */
55
- cleanup() {
56
- this.initialized = false;
57
- }
58
- /**
59
- * Fetch new stats data immediately (one-time)
60
- */
61
- async fetchNewData() {
62
- this.isDataLoading.value = true;
63
- try {
64
- // Handle mock data if enabled
65
- if (this.useMockData) {
66
- await this.fetchMockData();
67
- return;
68
- }
69
- // TODO: Implement real API call when stats service is available
70
- // For now, fall back to mock data
71
- await this.fetchMockData();
72
- this.isDataLoading.value = false;
73
- }
74
- catch (error) {
75
- console.error('Error fetching stats data:', error);
76
- this.isDataLoading.value = false;
77
- }
78
- }
79
- /**
80
- * Fetch mock data for testing
81
- */
82
- async fetchMockData() {
83
- // Simulate network delay
84
- await new Promise((resolve) => setTimeout(resolve, 100));
85
- this.statsData.value = MOCK_STATS_API_PRE_GAME_RESPONSE;
86
- this.hasEverSuccessfullyLoaded.value = true;
87
- this.isDataLoading.value = false;
88
- }
89
- }
90
- export default StatsViewModel;
@@ -1,102 +0,0 @@
1
- import NetworkManager, { HttpMethod } from './NetworkManager/NetworkManager';
2
- /**
3
- * Service for handling bets-related API calls
4
- */
5
- class BetsService {
6
- constructor(delegate) {
7
- Object.defineProperty(this, "networkManager", {
8
- enumerable: true,
9
- configurable: true,
10
- writable: true,
11
- value: void 0
12
- });
13
- this.networkManager = NetworkManager.getInstance({
14
- externalBaseURL: delegate.getBettingAPIBaseURL(),
15
- });
16
- }
17
- /**
18
- * Get non-personalized bets for an event
19
- *
20
- * @param eventID - The ID of the event
21
- * @returns Promise with the bets data
22
- */
23
- async getNonPersonalizedBets(eventID) {
24
- return this.networkManager.externalApiRequest({
25
- endpoint: this.nonPersonalizedBetsEndpoint(eventID),
26
- method: HttpMethod.GET,
27
- params: {},
28
- headers: {},
29
- });
30
- }
31
- /**
32
- * Get personalized bets for an event
33
- *
34
- * @param eventID - The ID of the event
35
- * @param swid - The ESPN SWID parameter
36
- * @param jwt - The authorization JWT
37
- * @returns Promise with the personalized bets data
38
- */
39
- async getPersonalizedBets(eventID, swid, jwt) {
40
- return this.networkManager.externalApiRequest({
41
- endpoint: this.personalizedBetsEndpoint(eventID),
42
- method: HttpMethod.GET,
43
- params: { swid },
44
- headers: { 'x-p13n-auth': jwt },
45
- });
46
- }
47
- /**
48
- * Start polling for non-personalized bets
49
- *
50
- * @param eventID - The ID of the event
51
- * @param interval - The polling interval in milliseconds
52
- * @param onData - Callback for successful data fetch
53
- * @param onError - Callback for errors
54
- * @returns Object with a stop function to stop polling
55
- */
56
- pollNonPersonalizedBets(eventID, interval, onData, onError) {
57
- return this.networkManager.pollExternalApiRequest({
58
- endpoint: this.nonPersonalizedBetsEndpoint(eventID),
59
- interval,
60
- method: HttpMethod.GET,
61
- params: {},
62
- headers: {},
63
- onData,
64
- onError,
65
- });
66
- }
67
- /**
68
- * Start polling for personalized bets
69
- *
70
- * @param eventID - The ID of the event
71
- * @param swid - The ESPN SWID parameter
72
- * @param jwt - The authorization JWT
73
- * @param interval - The polling interval in milliseconds
74
- * @param onData - Callback for successful data fetch
75
- * @param onError - Callback for errors
76
- * @returns Object with a stop function to stop polling
77
- */
78
- pollPersonalizedBets(eventID, swid, jwt, interval, onData, onError) {
79
- return this.networkManager.pollExternalApiRequest({
80
- endpoint: this.personalizedBetsEndpoint(eventID),
81
- interval,
82
- method: HttpMethod.GET,
83
- params: { swid },
84
- headers: { 'x-p13n-auth': jwt },
85
- onData,
86
- onError,
87
- });
88
- }
89
- /**
90
- * Get the endpoint for non-personalized bets
91
- */
92
- nonPersonalizedBetsEndpoint(eventID) {
93
- return `/site/v2/events/${eventID}/odds`;
94
- }
95
- /**
96
- * Get the endpoint for personalized bets
97
- */
98
- personalizedBetsEndpoint(eventID) {
99
- return `/personalized/site/v2/events/${eventID}/odds`;
100
- }
101
- }
102
- export default BetsService;