@maestro_io/maestro-web-sdk 4.0.0 → 4.0.1

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 (492) hide show
  1. package/dist/maestro-web-sdk.esm.js +2 -2
  2. package/dist/maestro-web-sdk.esm.js.map +1 -1
  3. package/dist/maestro-web-sdk.umd.js +2 -2
  4. package/dist/maestro-web-sdk.umd.js.map +1 -1
  5. package/dist/package.json +92 -0
  6. package/dist/src/components/atoms/BaseButton/BaseButton.d.ts +7 -0
  7. package/dist/src/components/atoms/BaseButton/BaseButton.js +11 -0
  8. package/dist/src/components/atoms/BaseButton/index.d.ts +2 -0
  9. package/dist/src/components/atoms/BaseButton/index.js +2 -0
  10. package/dist/src/components/atoms/Image/index.d.ts +13 -0
  11. package/dist/src/components/atoms/Image/index.js +34 -0
  12. package/dist/src/components/atoms/Rive/index.d.ts +219 -0
  13. package/dist/src/components/atoms/Rive/index.js +53 -0
  14. package/dist/src/components/atoms/SvgIcon/BetGeneralIcon.d.ts +3 -0
  15. package/dist/src/components/atoms/SvgIcon/BetGeneralIcon.js +9 -0
  16. package/dist/src/components/atoms/SvgIcon/BetsIcon.d.ts +3 -0
  17. package/dist/src/components/atoms/SvgIcon/BetsIcon.js +8 -0
  18. package/dist/src/components/atoms/SvgIcon/BetsWarningIcon.d.ts +7 -0
  19. package/dist/src/components/atoms/SvgIcon/BetsWarningIcon.js +11 -0
  20. package/dist/src/components/atoms/SvgIcon/ChatIcon.d.ts +3 -0
  21. package/dist/src/components/atoms/SvgIcon/ChatIcon.js +6 -0
  22. package/dist/src/components/atoms/SvgIcon/CheckmarkIcon.d.ts +3 -0
  23. package/dist/src/components/atoms/SvgIcon/CheckmarkIcon.js +6 -0
  24. package/dist/src/components/atoms/SvgIcon/CollapseIcon.d.ts +3 -0
  25. package/dist/src/components/atoms/SvgIcon/CollapseIcon.js +6 -0
  26. package/dist/src/components/atoms/SvgIcon/ExpandIcon.d.ts +3 -0
  27. package/dist/src/components/atoms/SvgIcon/ExpandIcon.js +6 -0
  28. package/dist/src/components/atoms/SvgIcon/FantasyIcon.d.ts +7 -0
  29. package/dist/src/components/atoms/SvgIcon/FantasyIcon.js +15 -0
  30. package/dist/src/components/atoms/SvgIcon/FlameIcon.d.ts +7 -0
  31. package/dist/src/components/atoms/SvgIcon/FlameIcon.js +11 -0
  32. package/dist/src/components/atoms/SvgIcon/HelloWorldIcon.d.ts +3 -0
  33. package/dist/src/components/atoms/SvgIcon/HelloWorldIcon.js +6 -0
  34. package/dist/src/components/atoms/SvgIcon/Icon.d.ts +39 -0
  35. package/dist/src/components/atoms/SvgIcon/Icon.js +44 -0
  36. package/dist/src/components/atoms/SvgIcon/KeyPlaysIcon.d.ts +6 -0
  37. package/dist/src/components/atoms/SvgIcon/KeyPlaysIcon.js +10 -0
  38. package/dist/src/components/atoms/SvgIcon/MobilePhoneIcon.d.ts +7 -0
  39. package/dist/src/components/atoms/SvgIcon/MobilePhoneIcon.js +11 -0
  40. package/dist/src/components/atoms/SvgIcon/PlayIcon.d.ts +6 -0
  41. package/dist/src/components/atoms/SvgIcon/PlayIcon.js +8 -0
  42. package/dist/src/components/atoms/SvgIcon/ShopIcon.d.ts +5 -0
  43. package/dist/src/components/atoms/SvgIcon/ShopIcon.js +7 -0
  44. package/dist/src/components/atoms/SvgIcon/ShopifyIcon.d.ts +3 -0
  45. package/dist/src/components/atoms/SvgIcon/ShopifyIcon.js +6 -0
  46. package/dist/src/components/atoms/SvgIcon/StatsIcon.d.ts +6 -0
  47. package/dist/src/components/atoms/SvgIcon/StatsIcon.js +12 -0
  48. package/dist/src/components/atoms/SvgIcon/TimesIcon.d.ts +3 -0
  49. package/dist/src/components/atoms/SvgIcon/TimesIcon.js +6 -0
  50. package/dist/src/components/atoms/SvgIcon/WarningIcon.d.ts +6 -0
  51. package/dist/src/components/atoms/SvgIcon/WarningIcon.js +8 -0
  52. package/dist/src/components/atoms/SvgIcon/index.d.ts +2 -0
  53. package/dist/src/components/atoms/SvgIcon/index.js +2 -0
  54. package/dist/src/components/core/App/App.d.ts +11 -0
  55. package/dist/src/components/core/App/App.js +35 -0
  56. package/dist/src/components/core/App/index.d.ts +2 -0
  57. package/dist/src/components/core/App/index.js +2 -0
  58. package/dist/src/components/core/PanelManager/PanelManager.d.ts +21 -0
  59. package/dist/src/components/core/PanelManager/PanelManager.js +86 -0
  60. package/dist/src/components/core/PanelManager/index.d.ts +2 -0
  61. package/dist/src/components/core/PanelManager/index.js +2 -0
  62. package/dist/src/components/core/ScrollableContainer/FocusableItem.d.ts +6 -0
  63. package/dist/src/components/core/ScrollableContainer/FocusableItem.js +38 -0
  64. package/dist/src/components/core/ScrollableContainer/ScrollableContainer.d.ts +78 -0
  65. package/dist/src/components/core/ScrollableContainer/ScrollableContainer.js +169 -0
  66. package/dist/src/components/core/ScrollableContainer/index.d.ts +2 -0
  67. package/dist/src/components/core/ScrollableContainer/index.js +2 -0
  68. package/dist/src/components/molecules/ActionButton/ActionButton.d.ts +94 -0
  69. package/dist/src/components/molecules/ActionButton/ActionButton.js +10 -0
  70. package/dist/src/components/molecules/ActionButton/index.d.ts +2 -0
  71. package/dist/src/components/molecules/ActionButton/index.js +2 -0
  72. package/dist/src/components/molecules/HeadshotImage/HeadshotImage.d.ts +16 -0
  73. package/dist/src/components/molecules/HeadshotImage/HeadshotImage.js +50 -0
  74. package/dist/src/components/molecules/HeadshotImage/index.d.ts +2 -0
  75. package/dist/src/components/molecules/HeadshotImage/index.js +2 -0
  76. package/dist/src/components/molecules/Overlay/Overlay.d.ts +34 -0
  77. package/dist/src/components/molecules/Overlay/Overlay.js +139 -0
  78. package/dist/src/components/molecules/Overlay/index.d.ts +2 -0
  79. package/dist/src/components/molecules/Overlay/index.js +2 -0
  80. package/dist/src/components/molecules/PanelNavButton/PanelNavButton.d.ts +104 -0
  81. package/dist/src/components/molecules/PanelNavButton/PanelNavButton.js +27 -0
  82. package/dist/src/components/molecules/PanelNavButton/index.d.ts +2 -0
  83. package/dist/src/components/molecules/PanelNavButton/index.js +2 -0
  84. package/dist/src/components/molecules/SegmentButton/SegmentButton.d.ts +9 -0
  85. package/dist/src/components/molecules/SegmentButton/SegmentButton.js +10 -0
  86. package/dist/src/components/molecules/SegmentButton/index.d.ts +2 -0
  87. package/dist/src/components/molecules/SegmentButton/index.js +2 -0
  88. package/dist/src/components/molecules/TabLoadError/TabLoadError.d.ts +94 -0
  89. package/dist/src/components/molecules/TabLoadError/TabLoadError.js +14 -0
  90. package/dist/src/components/molecules/TabLoadError/index.d.ts +2 -0
  91. package/dist/src/components/molecules/TabLoadError/index.js +2 -0
  92. package/dist/src/components/molecules/WatchButton/WatchButton.d.ts +10 -0
  93. package/dist/src/components/molecules/WatchButton/WatchButton.js +15 -0
  94. package/dist/src/components/molecules/WatchButton/index.d.ts +2 -0
  95. package/dist/src/components/molecules/WatchButton/index.js +2 -0
  96. package/dist/src/components/organisms/PanelNavigation/PanelNavigation.d.ts +16 -0
  97. package/dist/src/components/organisms/PanelNavigation/PanelNavigation.js +60 -0
  98. package/dist/src/components/organisms/PanelNavigation/index.d.ts +2 -0
  99. package/dist/src/components/organisms/PanelNavigation/index.js +2 -0
  100. package/dist/src/components/organisms/SegmentController/SegmentController.d.ts +30 -0
  101. package/dist/src/components/organisms/SegmentController/SegmentController.js +76 -0
  102. package/dist/src/components/organisms/SegmentController/index.d.ts +3 -0
  103. package/dist/src/components/organisms/SegmentController/index.js +2 -0
  104. package/dist/src/development/MaestroEventDelegate.d.ts +27 -0
  105. package/dist/src/development/MaestroEventDelegate.js +109 -0
  106. package/dist/src/development/TimeSeek.d.ts +22 -0
  107. package/dist/src/development/TimeSeek.js +218 -0
  108. package/dist/src/development/development.d.ts +1 -0
  109. package/dist/src/development/development.js +36 -0
  110. package/dist/src/external/AxiosNetworkClient.d.ts +28 -0
  111. package/dist/src/external/AxiosNetworkClient.js +110 -0
  112. package/dist/src/external/LocalStorageCacheManager.d.ts +65 -0
  113. package/dist/src/external/LocalStorageCacheManager.js +213 -0
  114. package/dist/src/external/ReactRenderer.d.ts +17 -0
  115. package/dist/src/external/ReactRenderer.js +65 -0
  116. package/dist/src/external/mocks/MockExternalNetworkClient.d.ts +104 -0
  117. package/dist/src/external/mocks/MockExternalNetworkClient.js +187 -0
  118. package/dist/src/external/ports/cacheManager.d.ts +17 -0
  119. package/dist/src/external/ports/cacheManager.js +1 -0
  120. package/dist/src/external/ports/networkClient.d.ts +19 -0
  121. package/dist/src/external/ports/networkClient.js +1 -0
  122. package/dist/src/external/ports/renderer.d.ts +4 -0
  123. package/dist/src/external/ports/renderer.js +1 -0
  124. package/dist/src/external/spatial-navigation/__mocks__/withFocusable.d.ts +8 -0
  125. package/dist/src/external/spatial-navigation/__mocks__/withFocusable.js +7 -0
  126. package/dist/src/external/spatial-navigation/index.d.ts +4 -0
  127. package/dist/src/external/spatial-navigation/index.js +3 -0
  128. package/dist/src/external/spatial-navigation/measureLayout.d.ts +2 -0
  129. package/dist/src/external/spatial-navigation/measureLayout.js +30 -0
  130. package/dist/src/external/spatial-navigation/spatialNavigation.d.ts +155 -0
  131. package/dist/src/external/spatial-navigation/spatialNavigation.js +876 -0
  132. package/dist/src/external/spatial-navigation/utils.d.ts +20 -0
  133. package/dist/src/external/spatial-navigation/utils.js +6 -0
  134. package/dist/src/external/spatial-navigation/visualDebugger.d.ts +17 -0
  135. package/dist/src/external/spatial-navigation/visualDebugger.js +76 -0
  136. package/dist/src/external/spatial-navigation/withFocusable.d.ts +123 -0
  137. package/dist/src/external/spatial-navigation/withFocusable.js +245 -0
  138. package/dist/src/helpers/Observable.d.ts +12 -0
  139. package/dist/src/helpers/Observable.js +37 -0
  140. package/dist/src/helpers/strings.d.ts +2 -0
  141. package/dist/src/helpers/strings.js +14 -0
  142. package/dist/src/helpers/url.d.ts +1 -0
  143. package/dist/src/helpers/url.js +12 -0
  144. package/dist/src/index.d.ts +54 -0
  145. package/dist/src/index.js +165 -0
  146. package/dist/src/interfaces/IMaestroEvent.d.ts +126 -0
  147. package/dist/src/interfaces/IMaestroEvent.js +18 -0
  148. package/dist/src/interfaces/IMaestroEventDelegate.d.ts +74 -0
  149. package/dist/src/interfaces/IMaestroEventDelegate.js +1 -0
  150. package/dist/src/interfaces/IMaestroManager.d.ts +45 -0
  151. package/dist/src/interfaces/IMaestroManager.js +1 -0
  152. package/dist/src/interfaces/IUserSettings.d.ts +44 -0
  153. package/dist/src/interfaces/IUserSettings.js +20 -0
  154. package/dist/src/models/IModel.d.ts +7 -0
  155. package/dist/src/models/IModel.js +1 -0
  156. package/dist/src/models/IPanel.d.ts +15 -0
  157. package/dist/src/models/IPanel.js +40 -0
  158. package/dist/src/models/ITheme.d.ts +77 -0
  159. package/dist/src/models/ITheme.js +20 -0
  160. package/dist/src/models/IWinningBet.d.ts +7 -0
  161. package/dist/src/models/IWinningBet.js +1 -0
  162. package/dist/src/modules/bets/interfaces/IBets.d.ts +192 -0
  163. package/dist/src/modules/bets/interfaces/IBets.js +1 -0
  164. package/dist/src/modules/bets/mocks.d.ts +2 -0
  165. package/dist/src/modules/bets/mocks.js +573 -0
  166. package/dist/src/modules/bets/types/BetsAnalyticsTypes.d.ts +8 -0
  167. package/dist/src/modules/bets/types/BetsAnalyticsTypes.js +1 -0
  168. package/dist/src/modules/bets/view/BetsView.d.ts +28 -0
  169. package/dist/src/modules/bets/view/BetsView.js +143 -0
  170. package/dist/src/modules/bets/view/HotProps/HotPropsView.d.ts +100 -0
  171. package/dist/src/modules/bets/view/HotProps/HotPropsView.js +150 -0
  172. package/dist/src/modules/bets/view/SixPack/SixPackView.d.ts +23 -0
  173. package/dist/src/modules/bets/view/SixPack/SixPackView.js +110 -0
  174. package/dist/src/modules/bets/view/UserBets/BetResult/BetResult.d.ts +6 -0
  175. package/dist/src/modules/bets/view/UserBets/BetResult/BetResult.js +6 -0
  176. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCard.d.ts +101 -0
  177. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCard.js +149 -0
  178. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardEvent.d.ts +26 -0
  179. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardEvent.js +34 -0
  180. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardFooter.d.ts +7 -0
  181. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardFooter.js +18 -0
  182. package/dist/src/modules/bets/view/UserBets/Boost/Boost.d.ts +7 -0
  183. package/dist/src/modules/bets/view/UserBets/Boost/Boost.js +6 -0
  184. package/dist/src/modules/bets/view/UserBets/OutcomeBadge/OutcomeBadge.d.ts +6 -0
  185. package/dist/src/modules/bets/view/UserBets/OutcomeBadge/OutcomeBadge.js +9 -0
  186. package/dist/src/modules/bets/view/UserBets/Parlay/Parlay.d.ts +8 -0
  187. package/dist/src/modules/bets/view/UserBets/Parlay/Parlay.js +13 -0
  188. package/dist/src/modules/bets/view/UserBets/Straight/Straight.d.ts +7 -0
  189. package/dist/src/modules/bets/view/UserBets/Straight/Straight.js +6 -0
  190. package/dist/src/modules/bets/view/UserBets/Teaser/Teaser.d.ts +7 -0
  191. package/dist/src/modules/bets/view/UserBets/Teaser/Teaser.js +13 -0
  192. package/dist/src/modules/bets/view/UserBets/UserBetsView.d.ts +25 -0
  193. package/dist/src/modules/bets/view/UserBets/UserBetsView.js +107 -0
  194. package/dist/src/modules/bets/view/components/Bet/Bet.d.ts +158 -0
  195. package/dist/src/modules/bets/view/components/Bet/Bet.js +32 -0
  196. package/dist/src/modules/bets/view/components/BetPill/BetPill.d.ts +6 -0
  197. package/dist/src/modules/bets/view/components/BetPill/BetPill.js +6 -0
  198. package/dist/src/modules/bets/view/components/BetsCard/BetsCard.d.ts +10 -0
  199. package/dist/src/modules/bets/view/components/BetsCard/BetsCard.js +15 -0
  200. package/dist/src/modules/bets/view/components/BetsCard/BetsCardHeader.d.ts +16 -0
  201. package/dist/src/modules/bets/view/components/BetsCard/BetsCardHeader.js +20 -0
  202. package/dist/src/modules/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.d.ts +8 -0
  203. package/dist/src/modules/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.js +14 -0
  204. package/dist/src/modules/bets/view/components/LocationWarning/LocationWarning.d.ts +10 -0
  205. package/dist/src/modules/bets/view/components/LocationWarning/LocationWarning.js +16 -0
  206. package/dist/src/modules/bets/view/components/PromoCodeBanner/PromoCodeBanner.d.ts +18 -0
  207. package/dist/src/modules/bets/view/components/PromoCodeBanner/PromoCodeBanner.js +78 -0
  208. package/dist/src/modules/bets/view/components/PromoCodeBanner/index.d.ts +1 -0
  209. package/dist/src/modules/bets/view/components/PromoCodeBanner/index.js +1 -0
  210. package/dist/src/modules/bets/view-model/BetsViewModel.d.ts +219 -0
  211. package/dist/src/modules/bets/view-model/BetsViewModel.js +974 -0
  212. package/dist/src/modules/fantasy/components/ExpandedAthleteList/ExpandedAthletesList.d.ts +28 -0
  213. package/dist/src/modules/fantasy/components/ExpandedAthleteList/ExpandedAthletesList.js +107 -0
  214. package/dist/src/modules/fantasy/components/ExpandedAthleteList/index.d.ts +1 -0
  215. package/dist/src/modules/fantasy/components/ExpandedAthleteList/index.js +1 -0
  216. package/dist/src/modules/fantasy/components/LeagueCard/LeagueCard.d.ts +102 -0
  217. package/dist/src/modules/fantasy/components/LeagueCard/LeagueCard.js +20 -0
  218. package/dist/src/modules/fantasy/components/LeagueCard/index.d.ts +2 -0
  219. package/dist/src/modules/fantasy/components/LeagueCard/index.js +2 -0
  220. package/dist/src/modules/fantasy/components/TopPlayerCard/TopPlayerCard.d.ts +99 -0
  221. package/dist/src/modules/fantasy/components/TopPlayerCard/TopPlayerCard.js +29 -0
  222. package/dist/src/modules/fantasy/components/TopPlayerCard/index.d.ts +2 -0
  223. package/dist/src/modules/fantasy/components/TopPlayerCard/index.js +2 -0
  224. package/dist/src/modules/fantasy/mocks.d.ts +7620 -0
  225. package/dist/src/modules/fantasy/mocks.js +3682 -0
  226. package/dist/src/modules/fantasy/types.d.ts +176 -0
  227. package/dist/src/modules/fantasy/types.js +6 -0
  228. package/dist/src/modules/fantasy/view/ActiveAthletesMarquee/ActiveAthletesMarquee.d.ts +21 -0
  229. package/dist/src/modules/fantasy/view/ActiveAthletesMarquee/ActiveAthletesMarquee.js +74 -0
  230. package/dist/src/modules/fantasy/view/ActiveAthletesMarquee/index.d.ts +2 -0
  231. package/dist/src/modules/fantasy/view/ActiveAthletesMarquee/index.js +2 -0
  232. package/dist/src/modules/fantasy/view/FantasyItemView.d.ts +22 -0
  233. package/dist/src/modules/fantasy/view/FantasyItemView.js +74 -0
  234. package/dist/src/modules/fantasy/view/FantasyView.d.ts +27 -0
  235. package/dist/src/modules/fantasy/view/FantasyView.js +133 -0
  236. package/dist/src/modules/fantasy/view/InactiveLeague/DraftDateCountdown.d.ts +23 -0
  237. package/dist/src/modules/fantasy/view/InactiveLeague/DraftDateCountdown.js +95 -0
  238. package/dist/src/modules/fantasy/view/InactiveLeague/InactiveLeague.d.ts +98 -0
  239. package/dist/src/modules/fantasy/view/InactiveLeague/InactiveLeague.js +13 -0
  240. package/dist/src/modules/fantasy/view/InactiveLeague/index.d.ts +2 -0
  241. package/dist/src/modules/fantasy/view/InactiveLeague/index.js +2 -0
  242. package/dist/src/modules/fantasy/view/LoginView/LoginView.d.ts +94 -0
  243. package/dist/src/modules/fantasy/view/LoginView/LoginView.js +27 -0
  244. package/dist/src/modules/fantasy/view/LoginView/index.d.ts +2 -0
  245. package/dist/src/modules/fantasy/view/LoginView/index.js +2 -0
  246. package/dist/src/modules/fantasy/view/MatchupPair/DoubleAthleteCard/DoubleAthleteCard.d.ts +95 -0
  247. package/dist/src/modules/fantasy/view/MatchupPair/DoubleAthleteCard/DoubleAthleteCard.js +25 -0
  248. package/dist/src/modules/fantasy/view/MatchupPair/DoubleAthleteCard/index.d.ts +2 -0
  249. package/dist/src/modules/fantasy/view/MatchupPair/DoubleAthleteCard/index.js +2 -0
  250. package/dist/src/modules/fantasy/view/MatchupPair/ExpandedDoubleAthleteCards.d.ts +14 -0
  251. package/dist/src/modules/fantasy/view/MatchupPair/ExpandedDoubleAthleteCards.js +9 -0
  252. package/dist/src/modules/fantasy/view/MatchupPair/MatchupPair.d.ts +100 -0
  253. package/dist/src/modules/fantasy/view/MatchupPair/MatchupPair.js +118 -0
  254. package/dist/src/modules/fantasy/view/MatchupPair/index.d.ts +2 -0
  255. package/dist/src/modules/fantasy/view/MatchupPair/index.js +2 -0
  256. package/dist/src/modules/fantasy/view/MatchupSingle/ExpandedSingleAthleteCards.d.ts +14 -0
  257. package/dist/src/modules/fantasy/view/MatchupSingle/ExpandedSingleAthleteCards.js +9 -0
  258. package/dist/src/modules/fantasy/view/MatchupSingle/MatchupSingle.d.ts +100 -0
  259. package/dist/src/modules/fantasy/view/MatchupSingle/MatchupSingle.js +108 -0
  260. package/dist/src/modules/fantasy/view/MatchupSingle/SingleAthleteCard/SingleAthleteCard.d.ts +95 -0
  261. package/dist/src/modules/fantasy/view/MatchupSingle/SingleAthleteCard/SingleAthleteCard.js +18 -0
  262. package/dist/src/modules/fantasy/view/MatchupSingle/SingleAthleteCard/index.d.ts +2 -0
  263. package/dist/src/modules/fantasy/view/MatchupSingle/SingleAthleteCard/index.js +2 -0
  264. package/dist/src/modules/fantasy/view/MatchupSingle/index.d.ts +2 -0
  265. package/dist/src/modules/fantasy/view/MatchupSingle/index.js +2 -0
  266. package/dist/src/modules/fantasy/view/PromoView/PromoView.d.ts +98 -0
  267. package/dist/src/modules/fantasy/view/PromoView/PromoView.js +12 -0
  268. package/dist/src/modules/fantasy/view/PromoView/index.d.ts +2 -0
  269. package/dist/src/modules/fantasy/view/PromoView/index.js +2 -0
  270. package/dist/src/modules/fantasy/view/index.d.ts +2 -0
  271. package/dist/src/modules/fantasy/view/index.js +2 -0
  272. package/dist/src/modules/fantasy/view-model/FantasyViewModel.FantasyPolling.d.ts +32 -0
  273. package/dist/src/modules/fantasy/view-model/FantasyViewModel.FantasyPolling.js +132 -0
  274. package/dist/src/modules/fantasy/view-model/FantasyViewModel.LeagueManagerPolling.d.ts +32 -0
  275. package/dist/src/modules/fantasy/view-model/FantasyViewModel.LeagueManagerPolling.js +141 -0
  276. package/dist/src/modules/fantasy/view-model/FantasyViewModel.d.ts +148 -0
  277. package/dist/src/modules/fantasy/view-model/FantasyViewModel.js +534 -0
  278. package/dist/src/modules/hello-world/HelloWorldImage.d.ts +2 -0
  279. package/dist/src/modules/hello-world/HelloWorldImage.js +32 -0
  280. package/dist/src/modules/hello-world/HelloWorldView.d.ts +11 -0
  281. package/dist/src/modules/hello-world/HelloWorldView.js +34 -0
  282. package/dist/src/modules/hello-world/index.d.ts +2 -0
  283. package/dist/src/modules/hello-world/index.js +2 -0
  284. package/dist/src/modules/key-plays/constants.d.ts +3 -0
  285. package/dist/src/modules/key-plays/constants.js +292 -0
  286. package/dist/src/modules/key-plays/interfaces/IKeyPlays.d.ts +32 -0
  287. package/dist/src/modules/key-plays/interfaces/IKeyPlays.js +14 -0
  288. package/dist/src/modules/key-plays/interfaces/IKeyPlaysResponse.d.ts +44 -0
  289. package/dist/src/modules/key-plays/interfaces/IKeyPlaysResponse.js +1 -0
  290. package/dist/src/modules/key-plays/view/KeyPlayCardScoreTagView.d.ts +9 -0
  291. package/dist/src/modules/key-plays/view/KeyPlayCardScoreTagView.js +16 -0
  292. package/dist/src/modules/key-plays/view/KeyPlayCardView.d.ts +39 -0
  293. package/dist/src/modules/key-plays/view/KeyPlayCardView.js +139 -0
  294. package/dist/src/modules/key-plays/view/KeyPlayErrorStateView.d.ts +13 -0
  295. package/dist/src/modules/key-plays/view/KeyPlayErrorStateView.js +65 -0
  296. package/dist/src/modules/key-plays/view/KeyPlaysView.d.ts +37 -0
  297. package/dist/src/modules/key-plays/view/KeyPlaysView.js +151 -0
  298. package/dist/src/modules/key-plays/view-model/KeyPlaysViewModel.d.ts +37 -0
  299. package/dist/src/modules/key-plays/view-model/KeyPlaysViewModel.js +246 -0
  300. package/dist/src/modules/shop/mocks.d.ts +22 -0
  301. package/dist/src/modules/shop/mocks.js +391 -0
  302. package/dist/src/modules/shop/types.d.ts +161 -0
  303. package/dist/src/modules/shop/types.js +7 -0
  304. package/dist/src/modules/shop/view/ProductDetailView/ProductDetailView.d.ts +9 -0
  305. package/dist/src/modules/shop/view/ProductDetailView/ProductDetailView.js +60 -0
  306. package/dist/src/modules/shop/view/ProductDetailView/index.d.ts +2 -0
  307. package/dist/src/modules/shop/view/ProductDetailView/index.js +2 -0
  308. package/dist/src/modules/shop/view/ShopView.d.ts +35 -0
  309. package/dist/src/modules/shop/view/ShopView.js +182 -0
  310. package/dist/src/modules/shop/view/components/BrowseCard/BrowseCard.d.ts +101 -0
  311. package/dist/src/modules/shop/view/components/BrowseCard/BrowseCard.js +23 -0
  312. package/dist/src/modules/shop/view/components/BrowseCard/index.d.ts +2 -0
  313. package/dist/src/modules/shop/view/components/BrowseCard/index.js +2 -0
  314. package/dist/src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.d.ts +102 -0
  315. package/dist/src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.js +26 -0
  316. package/dist/src/modules/shop/view/components/ProductSummaryCard/index.d.ts +2 -0
  317. package/dist/src/modules/shop/view/components/ProductSummaryCard/index.js +1 -0
  318. package/dist/src/modules/shop/view/components/ShopPromoView/ShopPromoView.d.ts +8 -0
  319. package/dist/src/modules/shop/view/components/ShopPromoView/ShopPromoView.js +19 -0
  320. package/dist/src/modules/shop/view/components/ShopPromoView/index.d.ts +1 -0
  321. package/dist/src/modules/shop/view/components/ShopPromoView/index.js +1 -0
  322. package/dist/src/modules/shop/view/components/ShopSection/ShopSection.d.ts +23 -0
  323. package/dist/src/modules/shop/view/components/ShopSection/ShopSection.js +61 -0
  324. package/dist/src/modules/shop/view/components/ShopSection/index.d.ts +1 -0
  325. package/dist/src/modules/shop/view/components/ShopSection/index.js +1 -0
  326. package/dist/src/modules/shop/view/index.d.ts +2 -0
  327. package/dist/src/modules/shop/view/index.js +2 -0
  328. package/dist/src/modules/shop/view-model/ShopViewModel.ShopPolling.d.ts +31 -0
  329. package/dist/src/modules/shop/view-model/ShopViewModel.ShopPolling.js +111 -0
  330. package/dist/src/modules/shop/view-model/ShopViewModel.d.ts +77 -0
  331. package/dist/src/modules/shop/view-model/ShopViewModel.js +357 -0
  332. package/dist/src/modules/stats/interfaces/IStats.d.ts +226 -0
  333. package/dist/src/modules/stats/interfaces/IStats.js +1 -0
  334. package/dist/src/modules/stats/mocks.d.ts +2 -0
  335. package/dist/src/modules/stats/mocks.js +746 -0
  336. package/dist/src/modules/stats/utils/driveSummaryUtils.d.ts +18 -0
  337. package/dist/src/modules/stats/utils/driveSummaryUtils.js +48 -0
  338. package/dist/src/modules/stats/utils/renderTeamStatistic.d.ts +20 -0
  339. package/dist/src/modules/stats/utils/renderTeamStatistic.js +16 -0
  340. package/dist/src/modules/stats/utils.d.ts +39 -0
  341. package/dist/src/modules/stats/utils.js +62 -0
  342. package/dist/src/modules/stats/view/ActiveAthletes/ActiveAthletes.d.ts +22 -0
  343. package/dist/src/modules/stats/view/ActiveAthletes/ActiveAthletes.js +98 -0
  344. package/dist/src/modules/stats/view/ActiveAthletes/CollapsedAthletes/CollapsedAthletes.d.ts +4 -0
  345. package/dist/src/modules/stats/view/ActiveAthletes/CollapsedAthletes/CollapsedAthletes.js +27 -0
  346. package/dist/src/modules/stats/view/ActiveAthletes/ExpandedAthletes/ExpandedAthletes.d.ts +22 -0
  347. package/dist/src/modules/stats/view/ActiveAthletes/ExpandedAthletes/ExpandedAthletes.js +89 -0
  348. package/dist/src/modules/stats/view/ActiveAthletes/index.d.ts +2 -0
  349. package/dist/src/modules/stats/view/ActiveAthletes/index.js +2 -0
  350. package/dist/src/modules/stats/view/DriveSummary/DrivePlayCard.d.ts +106 -0
  351. package/dist/src/modules/stats/view/DriveSummary/DrivePlayCard.js +70 -0
  352. package/dist/src/modules/stats/view/DriveSummary/DriveSummary.d.ts +17 -0
  353. package/dist/src/modules/stats/view/DriveSummary/DriveSummary.js +87 -0
  354. package/dist/src/modules/stats/view/DriveSummary/ExpandedItems/DriveSummaryExpanded.d.ts +27 -0
  355. package/dist/src/modules/stats/view/DriveSummary/ExpandedItems/DriveSummaryExpanded.js +129 -0
  356. package/dist/src/modules/stats/view/DriveSummary/Header/DriveSummaryHeader.d.ts +12 -0
  357. package/dist/src/modules/stats/view/DriveSummary/Header/DriveSummaryHeader.js +26 -0
  358. package/dist/src/modules/stats/view/DriveSummary/MainStat/MainStat.d.ts +10 -0
  359. package/dist/src/modules/stats/view/DriveSummary/MainStat/MainStat.js +24 -0
  360. package/dist/src/modules/stats/view/DriveSummary/index.d.ts +2 -0
  361. package/dist/src/modules/stats/view/DriveSummary/index.js +2 -0
  362. package/dist/src/modules/stats/view/GameLeaders/GameLeaders.d.ts +21 -0
  363. package/dist/src/modules/stats/view/GameLeaders/GameLeaders.js +48 -0
  364. package/dist/src/modules/stats/view/GameLeaders/index.d.ts +2 -0
  365. package/dist/src/modules/stats/view/GameLeaders/index.js +2 -0
  366. package/dist/src/modules/stats/view/MatchPredictor/DonutChart/DonutChart.d.ts +17 -0
  367. package/dist/src/modules/stats/view/MatchPredictor/DonutChart/DonutChart.js +55 -0
  368. package/dist/src/modules/stats/view/MatchPredictor/DonutChart/index.d.ts +2 -0
  369. package/dist/src/modules/stats/view/MatchPredictor/DonutChart/index.js +1 -0
  370. package/dist/src/modules/stats/view/MatchPredictor/MatchPredictorView.d.ts +98 -0
  371. package/dist/src/modules/stats/view/MatchPredictor/MatchPredictorView.js +60 -0
  372. package/dist/src/modules/stats/view/MatchPredictor/index.d.ts +3 -0
  373. package/dist/src/modules/stats/view/MatchPredictor/index.js +2 -0
  374. package/dist/src/modules/stats/view/Penalties/Penalties.d.ts +9 -0
  375. package/dist/src/modules/stats/view/Penalties/Penalties.js +6 -0
  376. package/dist/src/modules/stats/view/Penalties/index.d.ts +2 -0
  377. package/dist/src/modules/stats/view/Penalties/index.js +2 -0
  378. package/dist/src/modules/stats/view/PlayerSeasonStats/ExpandedPlayerStats.d.ts +16 -0
  379. package/dist/src/modules/stats/view/PlayerSeasonStats/ExpandedPlayerStats.js +66 -0
  380. package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsCard.d.ts +97 -0
  381. package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsCard.js +23 -0
  382. package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsMinified.d.ts +6 -0
  383. package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsMinified.js +13 -0
  384. package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsView.d.ts +8 -0
  385. package/dist/src/modules/stats/view/PlayerSeasonStats/PlayerSeasonStatsView.js +148 -0
  386. package/dist/src/modules/stats/view/PlayerSeasonStats/index.d.ts +1 -0
  387. package/dist/src/modules/stats/view/PlayerSeasonStats/index.js +1 -0
  388. package/dist/src/modules/stats/view/RecentGames/RecentGames.d.ts +98 -0
  389. package/dist/src/modules/stats/view/RecentGames/RecentGames.js +23 -0
  390. package/dist/src/modules/stats/view/RecentGames/index.d.ts +2 -0
  391. package/dist/src/modules/stats/view/RecentGames/index.js +2 -0
  392. package/dist/src/modules/stats/view/ScoringSummary/ExpandedScores/ExpandedScores.d.ts +30 -0
  393. package/dist/src/modules/stats/view/ScoringSummary/ExpandedScores/ExpandedScores.js +123 -0
  394. package/dist/src/modules/stats/view/ScoringSummary/ExpandedScores/index.d.ts +2 -0
  395. package/dist/src/modules/stats/view/ScoringSummary/ExpandedScores/index.js +2 -0
  396. package/dist/src/modules/stats/view/ScoringSummary/ScoreItem/ScoreItem.d.ts +98 -0
  397. package/dist/src/modules/stats/view/ScoringSummary/ScoreItem/ScoreItem.js +62 -0
  398. package/dist/src/modules/stats/view/ScoringSummary/ScoreItem/index.d.ts +2 -0
  399. package/dist/src/modules/stats/view/ScoringSummary/ScoreItem/index.js +2 -0
  400. package/dist/src/modules/stats/view/ScoringSummary/ScoresSection/ScoresSection.d.ts +6 -0
  401. package/dist/src/modules/stats/view/ScoringSummary/ScoresSection/ScoresSection.js +23 -0
  402. package/dist/src/modules/stats/view/ScoringSummary/ScoresSection/index.d.ts +2 -0
  403. package/dist/src/modules/stats/view/ScoringSummary/ScoresSection/index.js +2 -0
  404. package/dist/src/modules/stats/view/ScoringSummary/ScoringSummary.d.ts +29 -0
  405. package/dist/src/modules/stats/view/ScoringSummary/ScoringSummary.js +125 -0
  406. package/dist/src/modules/stats/view/ScoringSummary/index.d.ts +2 -0
  407. package/dist/src/modules/stats/view/ScoringSummary/index.js +2 -0
  408. package/dist/src/modules/stats/view/StatsItemView.d.ts +22 -0
  409. package/dist/src/modules/stats/view/StatsItemView.js +92 -0
  410. package/dist/src/modules/stats/view/StatsQRCode/StatsQRCodeView.d.ts +98 -0
  411. package/dist/src/modules/stats/view/StatsQRCode/StatsQRCodeView.js +36 -0
  412. package/dist/src/modules/stats/view/StatsQRCode/index.d.ts +2 -0
  413. package/dist/src/modules/stats/view/StatsQRCode/index.js +1 -0
  414. package/dist/src/modules/stats/view/StatsView.d.ts +27 -0
  415. package/dist/src/modules/stats/view/StatsView.js +137 -0
  416. package/dist/src/modules/stats/view/TeamStats/TeamStatsView.d.ts +98 -0
  417. package/dist/src/modules/stats/view/TeamStats/TeamStatsView.js +43 -0
  418. package/dist/src/modules/stats/view/TeamStats/index.d.ts +2 -0
  419. package/dist/src/modules/stats/view/TeamStats/index.js +1 -0
  420. package/dist/src/modules/stats/view/Teams/StatsCarousel.d.ts +25 -0
  421. package/dist/src/modules/stats/view/Teams/StatsCarousel.js +83 -0
  422. package/dist/src/modules/stats/view/Teams/StatsProgressBar.d.ts +6 -0
  423. package/dist/src/modules/stats/view/Teams/StatsProgressBar.js +19 -0
  424. package/dist/src/modules/stats/view/Teams/Teams.d.ts +98 -0
  425. package/dist/src/modules/stats/view/Teams/Teams.js +43 -0
  426. package/dist/src/modules/stats/view/Teams/index.d.ts +2 -0
  427. package/dist/src/modules/stats/view/Teams/index.js +2 -0
  428. package/dist/src/modules/stats/view/WinProbability/WinProbability.d.ts +98 -0
  429. package/dist/src/modules/stats/view/WinProbability/WinProbability.js +28 -0
  430. package/dist/src/modules/stats/view/WinProbability/index.d.ts +2 -0
  431. package/dist/src/modules/stats/view/WinProbability/index.js +2 -0
  432. package/dist/src/modules/stats/view/components/AthletesStatistics/AthletesStatistics.d.ts +113 -0
  433. package/dist/src/modules/stats/view/components/AthletesStatistics/AthletesStatistics.js +89 -0
  434. package/dist/src/modules/stats/view/components/AthletesStatistics/StatisticTable.d.ts +3 -0
  435. package/dist/src/modules/stats/view/components/AthletesStatistics/StatisticTable.js +12 -0
  436. package/dist/src/modules/stats/view/components/AthletesStatistics/index.d.ts +2 -0
  437. package/dist/src/modules/stats/view/components/AthletesStatistics/index.js +2 -0
  438. package/dist/src/modules/stats/view/index.d.ts +2 -0
  439. package/dist/src/modules/stats/view/index.js +2 -0
  440. package/dist/src/modules/stats/view-model/StatsViewModel.d.ts +241 -0
  441. package/dist/src/modules/stats/view-model/StatsViewModel.js +989 -0
  442. package/dist/src/sentry.d.ts +3 -0
  443. package/dist/src/sentry.js +31 -0
  444. package/dist/src/services/AnalyticsService/AnalyticsService.d.ts +84 -0
  445. package/dist/src/services/AnalyticsService/AnalyticsService.js +404 -0
  446. package/dist/src/services/AnalyticsService/types.d.ts +65 -0
  447. package/dist/src/services/AnalyticsService/types.js +1 -0
  448. package/dist/src/services/BetsService.d.ts +81 -0
  449. package/dist/src/services/BetsService.js +122 -0
  450. package/dist/src/services/FantasyService.d.ts +53 -0
  451. package/dist/src/services/FantasyService.js +92 -0
  452. package/dist/src/services/InsightsService/InsightsPayloadBuilder.d.ts +279 -0
  453. package/dist/src/services/InsightsService/InsightsPayloadBuilder.js +386 -0
  454. package/dist/src/services/InsightsService/InsightsService.d.ts +11 -0
  455. package/dist/src/services/InsightsService/InsightsService.js +74 -0
  456. package/dist/src/services/NetworkManager/NetworkManager.d.ts +147 -0
  457. package/dist/src/services/NetworkManager/NetworkManager.js +457 -0
  458. package/dist/src/services/NetworkManager/NetworkManagerFactory.d.ts +42 -0
  459. package/dist/src/services/NetworkManager/NetworkManagerFactory.js +101 -0
  460. package/dist/src/services/NetworkManager/errors.d.ts +17 -0
  461. package/dist/src/services/NetworkManager/errors.js +45 -0
  462. package/dist/src/services/NetworkManager/types.d.ts +103 -0
  463. package/dist/src/services/NetworkManager/types.js +10 -0
  464. package/dist/src/services/ShopService.d.ts +23 -0
  465. package/dist/src/services/ShopService.js +46 -0
  466. package/dist/src/services/StaticService/StaticService.d.ts +12 -0
  467. package/dist/src/services/StaticService/StaticService.js +59 -0
  468. package/dist/src/services/StaticService/index.d.ts +2 -0
  469. package/dist/src/services/StaticService/index.js +2 -0
  470. package/dist/src/services/StaticService/mocks.d.ts +2 -0
  471. package/dist/src/services/StaticService/mocks.js +104 -0
  472. package/dist/src/services/StaticService/types.d.ts +76 -0
  473. package/dist/src/services/StaticService/types.js +1 -0
  474. package/dist/src/services/StatsService.d.ts +46 -0
  475. package/dist/src/services/StatsService.js +147 -0
  476. package/dist/src/services/ThemeManager/constants.d.ts +2 -0
  477. package/dist/src/services/ThemeManager/constants.js +47 -0
  478. package/dist/src/services/UserSettingsManager.d.ts +63 -0
  479. package/dist/src/services/UserSettingsManager.js +155 -0
  480. package/dist/src/test-polyfills.d.ts +1 -0
  481. package/dist/src/test-polyfills.js +15 -0
  482. package/dist/src/types/OverlayTypes.d.ts +43 -0
  483. package/dist/src/types/OverlayTypes.js +4 -0
  484. package/dist/src/view-models/MaestroEventViewModel.d.ts +63 -0
  485. package/dist/src/view-models/MaestroEventViewModel.js +304 -0
  486. package/dist/src/view-models/OverlayViewModel.d.ts +33 -0
  487. package/dist/src/view-models/OverlayViewModel.js +222 -0
  488. package/dist/src/view-models/PanelManagerViewModel.d.ts +46 -0
  489. package/dist/src/view-models/PanelManagerViewModel.js +212 -0
  490. package/dist/src/view-models/ViewModel.d.ts +12 -0
  491. package/dist/src/view-models/ViewModel.js +32 -0
  492. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ import FantasyView from './FantasyView';
2
+ export default FantasyView;
@@ -0,0 +1,2 @@
1
+ import FantasyView from './FantasyView';
2
+ export default FantasyView;
@@ -0,0 +1,32 @@
1
+ import FantasyService, { FantasyPollingParams } from '@/services/FantasyService';
2
+ import { IFantasyResponse } from '../types';
3
+ export default class FantasyPolling {
4
+ private polling;
5
+ private fantasyService;
6
+ constructor(service: FantasyService);
7
+ /**
8
+ * Refresh polling for fantasy data
9
+ */
10
+ refresh(params: FantasyPollingParams, callback: (data: IFantasyResponse) => void): Promise<void>;
11
+ /**
12
+ * Stop polling for fantasy data
13
+ */
14
+ stop(): void;
15
+ removeLastResponseHash(): void;
16
+ private start;
17
+ /**
18
+ * @description Update polling interval checking either response header or panel config.
19
+ * Refresh polling if necessary.
20
+ */
21
+ private updateInterval;
22
+ private getResponseHeaderPollingIntervalValue;
23
+ private getPanelConfigInterval;
24
+ /**
25
+ * Process data received from polling
26
+ */
27
+ private processPolledData;
28
+ /**
29
+ * Handle errors that occur during fantasy polling
30
+ */
31
+ private handlePollingError;
32
+ }
@@ -0,0 +1,132 @@
1
+ import SDK from '@/index';
2
+ import { captureException } from '@/sentry';
3
+ import { stringHashCode } from '@/helpers/strings';
4
+ const DEFAULT_FANTASY_POLLING_INTERVAL = 60000;
5
+ export default class FantasyPolling {
6
+ constructor(service) {
7
+ Object.defineProperty(this, "polling", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: {
12
+ interval: DEFAULT_FANTASY_POLLING_INTERVAL,
13
+ task: null,
14
+ lastResponseHash: null,
15
+ }
16
+ });
17
+ Object.defineProperty(this, "fantasyService", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: void 0
22
+ });
23
+ this.fantasyService = service;
24
+ }
25
+ /**
26
+ * Refresh polling for fantasy data
27
+ */
28
+ async refresh(params, callback) {
29
+ // First stop any existing polling
30
+ this.stop();
31
+ // Start the poll loop
32
+ await this.start(params, callback);
33
+ }
34
+ /**
35
+ * Stop polling for fantasy data
36
+ */
37
+ stop() {
38
+ if (this.polling.task) {
39
+ this.polling.task.stop();
40
+ this.polling.task = null;
41
+ }
42
+ }
43
+ removeLastResponseHash() {
44
+ this.polling.lastResponseHash = null;
45
+ }
46
+ async start(params, callback) {
47
+ try {
48
+ this.polling.task = this.fantasyService.pollFantasy(params, this.polling.interval, (response) => {
49
+ this.updateInterval(params, response.headers, callback);
50
+ this.processPolledData(response.data, callback);
51
+ }, (error) => this.handlePollingError(error, params.swid));
52
+ }
53
+ catch (error) {
54
+ captureException(error, {
55
+ context: 'FantasyViewModel.pollFantasy',
56
+ });
57
+ console.error('[FANTASY] Error setting up fantasy polling:', error);
58
+ }
59
+ }
60
+ /**
61
+ * @description Update polling interval checking either response header or panel config.
62
+ * Refresh polling if necessary.
63
+ */
64
+ updateInterval(params, headers, callback) {
65
+ const headerInterval = this.getResponseHeaderPollingIntervalValue(headers);
66
+ const panelConfigInterval = this.getPanelConfigInterval();
67
+ const newInterval = headerInterval || panelConfigInterval; // order matters here
68
+ // Only update if we have a valid new interval and it's different from current
69
+ if (newInterval && newInterval !== this.polling.interval) {
70
+ console.log(`[Fantasy] Updating fantasy polling interval from ${this.polling.interval}ms to ${newInterval}ms`);
71
+ this.polling.interval = newInterval;
72
+ // Restart polling with the new interval
73
+ this.refresh(params, callback);
74
+ }
75
+ }
76
+ getResponseHeaderPollingIntervalValue(headers) {
77
+ const newInterval = headers['polling-interval'];
78
+ if (!newInterval) {
79
+ return null;
80
+ }
81
+ const parsedInterval = parseInt(newInterval, 10);
82
+ if (isNaN(parsedInterval) || parsedInterval <= 0) {
83
+ console.warn(`[Fantasy] Invalid polling interval header received: ${newInterval}.`);
84
+ return null;
85
+ }
86
+ return parsedInterval * 1000; // Convert seconds to milliseconds
87
+ }
88
+ getPanelConfigInterval() {
89
+ const config = SDK.getPageConfig();
90
+ const panel = config?.panels?.find((p) => p.panel_type === 'espnFantasy');
91
+ if (!panel) {
92
+ return null;
93
+ }
94
+ const fantasyPollingInterval = panel.renderer?.block_data?.fan_polling_interval;
95
+ if (!fantasyPollingInterval) {
96
+ return null;
97
+ }
98
+ const parsedInterval = parseInt(fantasyPollingInterval, 10);
99
+ if (isNaN(parsedInterval) || parsedInterval <= 0) {
100
+ console.warn(`[FANTASY] Invalid fantasy polling interval from panel config: ${fantasyPollingInterval}.`);
101
+ return null;
102
+ }
103
+ return parsedInterval * 1000; // Convert seconds to milliseconds
104
+ }
105
+ /**
106
+ * Process data received from polling
107
+ */
108
+ processPolledData(data, callback) {
109
+ // Calculate hash for the response to check if it's different from the last one
110
+ const responseHash = stringHashCode(JSON.stringify(data));
111
+ // Check if this is the same as the last successful response
112
+ if (this.polling.lastResponseHash === responseHash) {
113
+ console.log('[Fantasy] Fantasy Response hash is the same as last successful response - skipping update');
114
+ return;
115
+ }
116
+ this.polling.lastResponseHash = responseHash;
117
+ callback(data);
118
+ }
119
+ /**
120
+ * Handle errors that occur during fantasy polling
121
+ */
122
+ handlePollingError(error, swid) {
123
+ console.error('[FANTASY] Fantasy polling error:', error);
124
+ captureException(error, {
125
+ context: 'FantasyViewModel.pollFantasy',
126
+ extra: {
127
+ swid: swid ? `${swid.substring(0, 8)}...` : 'unknown',
128
+ pollingInterval: this.polling.interval,
129
+ },
130
+ });
131
+ }
132
+ }
@@ -0,0 +1,32 @@
1
+ import FantasyService, { LeagueManagerPollingParams } from '@/services/FantasyService';
2
+ import { ILeagueManagerResponse, ILeagueManagerRotoResponse } from '../types';
3
+ export default class LeagueManagerPolling {
4
+ private polling;
5
+ private fantasyService;
6
+ constructor(service: FantasyService);
7
+ /**
8
+ * Refresh polling for league manager data
9
+ */
10
+ refresh(key: string, params: LeagueManagerPollingParams, callback: (data: ILeagueManagerResponse | ILeagueManagerRotoResponse) => void): void;
11
+ /**
12
+ * Stop polling for fantasy data
13
+ */
14
+ stop(key: string): void;
15
+ private start;
16
+ /**
17
+ * Process data received from polling
18
+ */
19
+ private processPolledData;
20
+ /**
21
+ * @description Update polling interval checking either response header or panel config.
22
+ * Refresh polling if necessary.
23
+ */
24
+ private updateInterval;
25
+ private getResponseHeaderPollingIntervalValue;
26
+ private getPanelConfigInterval;
27
+ stopAll(): void;
28
+ /**
29
+ * Handle errors that occur during league manager polling
30
+ */
31
+ private handlePollingError;
32
+ }
@@ -0,0 +1,141 @@
1
+ import SDK from '@/index';
2
+ import { captureException } from '@/sentry';
3
+ import { stringHashCode } from '@/helpers/strings';
4
+ const DEFAULT_LEAGUE_MANAGER_POLLING_INTERVAL = 60000;
5
+ export default class LeagueManagerPolling {
6
+ constructor(service) {
7
+ Object.defineProperty(this, "polling", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: {}
12
+ });
13
+ Object.defineProperty(this, "fantasyService", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: void 0
18
+ });
19
+ this.fantasyService = service;
20
+ }
21
+ /**
22
+ * Refresh polling for league manager data
23
+ */
24
+ refresh(key, params, callback) {
25
+ // First stop any existing polling
26
+ this.stop(key);
27
+ // Initialize polling state if it doesn't exist
28
+ if (!this.polling[key]) {
29
+ this.polling[key] = {
30
+ interval: DEFAULT_LEAGUE_MANAGER_POLLING_INTERVAL,
31
+ lastResponseHash: null,
32
+ task: null,
33
+ };
34
+ }
35
+ // Start the poll loop
36
+ this.start(key, params, callback);
37
+ }
38
+ /**
39
+ * Stop polling for fantasy data
40
+ */
41
+ stop(key) {
42
+ if (this.polling[key]?.task) {
43
+ this.polling[key]?.task?.stop?.();
44
+ this.polling[key].task = null;
45
+ }
46
+ }
47
+ start(key, params, callback) {
48
+ try {
49
+ this.polling[key].task = this.fantasyService.pollLeagueManager(params, this.polling[key].interval, (response) => {
50
+ this.updateInterval(key, params, callback, response.headers);
51
+ this.processPolledData(key, response.data, callback);
52
+ }, (error) => this.handlePollingError(error, key, params));
53
+ }
54
+ catch (error) {
55
+ captureException(error, {
56
+ context: 'FantasyViewModel.pollLeagueManager',
57
+ });
58
+ console.error('[FANTASY] Error setting up league manager polling:', error);
59
+ }
60
+ }
61
+ /**
62
+ * Process data received from polling
63
+ */
64
+ processPolledData(key, data, callback) {
65
+ // Calculate hash for the response to check if it's different from the last one
66
+ const responseHash = stringHashCode(JSON.stringify(data));
67
+ // Check if this is the same as the last successful response
68
+ if (this.polling[key].lastResponseHash === responseHash) {
69
+ console.log('[Fantasy] League manager Response hash is the same as last successful response - skipping update');
70
+ return;
71
+ }
72
+ this.polling[key].lastResponseHash = responseHash;
73
+ callback(data);
74
+ }
75
+ /**
76
+ * @description Update polling interval checking either response header or panel config.
77
+ * Refresh polling if necessary.
78
+ */
79
+ updateInterval(key, params, callback, headers) {
80
+ const headerInterval = this.getResponseHeaderPollingIntervalValue(headers);
81
+ const panelConfigInterval = this.getPanelConfigInterval();
82
+ const newInterval = headerInterval || panelConfigInterval; // order matters here
83
+ // Only update if we have a valid new interval and it's different from current
84
+ if (newInterval && newInterval !== this.polling[key]?.interval) {
85
+ console.log(`[Fantasy] Updating league manager polling interval from ${this.polling[key]?.interval}ms to ${newInterval}ms`);
86
+ this.polling[key].interval = newInterval;
87
+ // Restart polling with the new interval
88
+ this.refresh(key, params, callback);
89
+ }
90
+ }
91
+ getResponseHeaderPollingIntervalValue(headers) {
92
+ const newInterval = headers['polling-interval'];
93
+ if (!newInterval) {
94
+ return null;
95
+ }
96
+ const parsedInterval = parseInt(newInterval, 10);
97
+ if (isNaN(parsedInterval) || parsedInterval <= 0) {
98
+ console.warn(`[Fantasy] Invalid polling interval header received: ${newInterval}.`);
99
+ return null;
100
+ }
101
+ return parsedInterval * 1000; // Convert seconds to milliseconds
102
+ }
103
+ getPanelConfigInterval() {
104
+ const config = SDK.getPageConfig();
105
+ const panel = config?.panels?.find((p) => p.panel_type === 'espnFantasy');
106
+ if (!panel) {
107
+ return null;
108
+ }
109
+ const fantasyPollingInterval = panel.renderer?.block_data?.lm_polling_interval;
110
+ if (!fantasyPollingInterval) {
111
+ return null;
112
+ }
113
+ const parsedInterval = parseInt(fantasyPollingInterval, 10);
114
+ if (isNaN(parsedInterval) || parsedInterval <= 0) {
115
+ console.warn(`[FANTASY] Invalid league manager polling interval from panel config: ${fantasyPollingInterval}.`);
116
+ return null;
117
+ }
118
+ return parsedInterval * 1000; // Convert seconds to milliseconds
119
+ }
120
+ stopAll() {
121
+ Object.keys(this.polling).forEach((key) => {
122
+ this.stop(key);
123
+ });
124
+ this.polling = {};
125
+ }
126
+ /**
127
+ * Handle errors that occur during league manager polling
128
+ */
129
+ handlePollingError(error, key, params) {
130
+ console.error('[FANTASY] League manager polling error:', error);
131
+ captureException(error, {
132
+ context: 'FantasyViewModel.pollLeagueManager',
133
+ extra: {
134
+ key,
135
+ leagueId: params?.leagueId,
136
+ game: params?.game,
137
+ pollingInterval: this.polling[key]?.interval,
138
+ },
139
+ });
140
+ }
141
+ }
@@ -0,0 +1,148 @@
1
+ import { Observable } from '@/helpers/Observable';
2
+ import IMaestroEventDelegate from '@/interfaces/IMaestroEventDelegate';
3
+ type NotLoggedInFantasyItem = {
4
+ id: string;
5
+ type: 'notLoggedIn';
6
+ };
7
+ export type PromoFantasyItem = {
8
+ id: string;
9
+ type: 'promo';
10
+ background: string;
11
+ logo: string;
12
+ title: string;
13
+ qrCode: string;
14
+ description: string;
15
+ };
16
+ export type InactiveLeague = {
17
+ id: string;
18
+ type: 'inactiveLeague';
19
+ leagueName: string;
20
+ draftDate?: number;
21
+ leagueLogo: string;
22
+ leagueColor: string;
23
+ };
24
+ type MatchupSingleTeam = {
25
+ points: number;
26
+ logo: string;
27
+ scoringType: string;
28
+ };
29
+ export type MatchupSingleRoster = {
30
+ athleteHeadshot: string;
31
+ athleteAbbrevName: string;
32
+ athletesSlot: string;
33
+ teamTriCode: string;
34
+ proGameStatusLines: string[];
35
+ };
36
+ export type MatchupActiveAthlete = {
37
+ abbrevName: string;
38
+ points: string;
39
+ };
40
+ export type MatchupSingleItem = {
41
+ id: string;
42
+ type: 'matchup-single';
43
+ league: {
44
+ title: string;
45
+ subtitle: string | undefined;
46
+ color: string;
47
+ logo: string;
48
+ };
49
+ team: MatchupSingleTeam;
50
+ roster: MatchupSingleRoster[];
51
+ activeAthletes: MatchupActiveAthlete[];
52
+ topPlayers: TopPlayer[];
53
+ };
54
+ export type TopPlayer = {
55
+ abbrevName: string;
56
+ headshot: string;
57
+ position: string;
58
+ teamTriCode: string;
59
+ points: number;
60
+ rosteredBy: string;
61
+ };
62
+ type MatchupPairTeam = {
63
+ name: string | undefined;
64
+ record: string | undefined;
65
+ points: string | undefined;
66
+ projectedPoints: string | undefined;
67
+ logo: string | undefined;
68
+ winProbability: number | undefined;
69
+ };
70
+ type MatchupPairRosterData = {
71
+ headshot: string;
72
+ abbrevName: string;
73
+ slot: string;
74
+ triCode: string;
75
+ points?: number;
76
+ projectedPoints?: number;
77
+ stats: string[];
78
+ };
79
+ export type MatchupPairRoster = {
80
+ away: MatchupPairRosterData;
81
+ home: MatchupPairRosterData;
82
+ };
83
+ export type MatchupPairItem = {
84
+ id: string;
85
+ type: 'matchup-pair';
86
+ league: {
87
+ title: string | undefined;
88
+ subtitle: string | undefined;
89
+ color: string;
90
+ logo: string;
91
+ };
92
+ awayTeam: MatchupPairTeam;
93
+ homeTeam: MatchupPairTeam;
94
+ roster: MatchupPairRoster[];
95
+ activeAthletes: MatchupActiveAthlete[];
96
+ topPlayers: TopPlayer[];
97
+ };
98
+ export type FantasyItem = NotLoggedInFantasyItem | MatchupPairItem | MatchupSingleItem | InactiveLeague | PromoFantasyItem;
99
+ declare const FANTASY_ERROR_STATE: {
100
+ readonly NONE: "none";
101
+ readonly TAB_LOAD_FAILURE: "tabLoadFailure";
102
+ };
103
+ export type FantasyErrorState = typeof FANTASY_ERROR_STATE[keyof typeof FANTASY_ERROR_STATE];
104
+ export declare class FantasyViewModel {
105
+ fantasyItems: Observable<FantasyItem[]>;
106
+ isDataLoading: Observable<boolean>;
107
+ hasEverSuccessfullyLoaded: Observable<boolean>;
108
+ private eventId;
109
+ private delegate;
110
+ private analyticsService;
111
+ private fantasyService;
112
+ private fantasyPolling;
113
+ private leagueManagerPolling;
114
+ errorState: Observable<FantasyErrorState>;
115
+ private leagueSortOrder;
116
+ private itemToLeagueKey;
117
+ private useMockData;
118
+ constructor(eventId: string, delegate: IMaestroEventDelegate, options?: {
119
+ useMockData?: boolean;
120
+ });
121
+ /**
122
+ * Initialize the ViewModel and start data fetching
123
+ */
124
+ init(): Promise<void>;
125
+ private fetchData;
126
+ onEngage(type: FantasyItem['type']): void;
127
+ onAskLogin(): void;
128
+ /**
129
+ * Clean up resources when the ViewModel is no longer needed
130
+ */
131
+ cleanup(): void;
132
+ /**
133
+ * Track panel view event
134
+ */
135
+ private trackPanelView;
136
+ private processFantasy;
137
+ private parseRoto;
138
+ append(item: FantasyItem | null, leagueKey?: string): void;
139
+ private parseHeadToHead;
140
+ private parseTopPlayers;
141
+ private parseInactiveLeague;
142
+ /**
143
+ * Fetch mock data for testing
144
+ */
145
+ private fetchMockData;
146
+ clearTabLoadFailure(): void;
147
+ }
148
+ export default FantasyViewModel;