@maestro_io/maestro-web-sdk 4.0.0-beta.3 → 4.0.0-beta.5

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/index.d.ts +1733 -0
  2. package/dist/maestro-web-sdk.esm.js +4 -4
  3. package/dist/maestro-web-sdk.esm.js.map +1 -1
  4. package/dist/maestro-web-sdk.umd.js +4 -4
  5. package/dist/maestro-web-sdk.umd.js.map +1 -1
  6. package/package.json +15 -10
  7. package/dist/f8820fca3a2a7957f753167da0884f9d.png +0 -0
  8. package/dist/package.json +0 -87
  9. package/dist/src/__mocks__/sentry.d.ts +0 -4
  10. package/dist/src/components/atoms/BaseButton/BaseButton.d.ts +0 -7
  11. package/dist/src/components/atoms/BaseButton/BaseButton.js +0 -11
  12. package/dist/src/components/atoms/BaseButton/index.d.ts +0 -2
  13. package/dist/src/components/atoms/BaseButton/index.js +0 -2
  14. package/dist/src/components/atoms/Image/index.d.ts +0 -13
  15. package/dist/src/components/atoms/Image/index.js +0 -34
  16. package/dist/src/components/atoms/Rive/index.d.ts +0 -89
  17. package/dist/src/components/atoms/Rive/index.js +0 -53
  18. package/dist/src/components/atoms/SvgIcon/BetGeneralIcon.d.ts +0 -4
  19. package/dist/src/components/atoms/SvgIcon/BetGeneralIcon.js +0 -9
  20. package/dist/src/components/atoms/SvgIcon/BetsIcon.d.ts +0 -7
  21. package/dist/src/components/atoms/SvgIcon/BetsIcon.js +0 -11
  22. package/dist/src/components/atoms/SvgIcon/BetsWarningIcon.d.ts +0 -7
  23. package/dist/src/components/atoms/SvgIcon/BetsWarningIcon.js +0 -11
  24. package/dist/src/components/atoms/SvgIcon/CheckmarkIcon.d.ts +0 -4
  25. package/dist/src/components/atoms/SvgIcon/CheckmarkIcon.js +0 -6
  26. package/dist/src/components/atoms/SvgIcon/CollapseIcon.d.ts +0 -4
  27. package/dist/src/components/atoms/SvgIcon/CollapseIcon.js +0 -6
  28. package/dist/src/components/atoms/SvgIcon/ExpandIcon.d.ts +0 -4
  29. package/dist/src/components/atoms/SvgIcon/ExpandIcon.js +0 -6
  30. package/dist/src/components/atoms/SvgIcon/FantasyIcon.d.ts +0 -7
  31. package/dist/src/components/atoms/SvgIcon/FantasyIcon.js +0 -15
  32. package/dist/src/components/atoms/SvgIcon/FlameIcon.d.ts +0 -7
  33. package/dist/src/components/atoms/SvgIcon/FlameIcon.js +0 -11
  34. package/dist/src/components/atoms/SvgIcon/Icon.d.ts +0 -40
  35. package/dist/src/components/atoms/SvgIcon/Icon.js +0 -44
  36. package/dist/src/components/atoms/SvgIcon/KeyPlaysIcon.d.ts +0 -6
  37. package/dist/src/components/atoms/SvgIcon/KeyPlaysIcon.js +0 -10
  38. package/dist/src/components/atoms/SvgIcon/MobilePhoneIcon.d.ts +0 -7
  39. package/dist/src/components/atoms/SvgIcon/MobilePhoneIcon.js +0 -11
  40. package/dist/src/components/atoms/SvgIcon/PlayIcon.d.ts +0 -6
  41. package/dist/src/components/atoms/SvgIcon/PlayIcon.js +0 -8
  42. package/dist/src/components/atoms/SvgIcon/ShopIcon.d.ts +0 -5
  43. package/dist/src/components/atoms/SvgIcon/ShopIcon.js +0 -7
  44. package/dist/src/components/atoms/SvgIcon/StatsIcon.d.ts +0 -6
  45. package/dist/src/components/atoms/SvgIcon/StatsIcon.js +0 -12
  46. package/dist/src/components/atoms/SvgIcon/TimesIcon.d.ts +0 -4
  47. package/dist/src/components/atoms/SvgIcon/TimesIcon.js +0 -6
  48. package/dist/src/components/atoms/SvgIcon/WarningIcon.d.ts +0 -6
  49. package/dist/src/components/atoms/SvgIcon/WarningIcon.js +0 -8
  50. package/dist/src/components/atoms/SvgIcon/index.d.ts +0 -2
  51. package/dist/src/components/atoms/SvgIcon/index.js +0 -2
  52. package/dist/src/components/core/App/App.d.ts +0 -11
  53. package/dist/src/components/core/App/App.js +0 -35
  54. package/dist/src/components/core/App/index.d.ts +0 -2
  55. package/dist/src/components/core/App/index.js +0 -2
  56. package/dist/src/components/core/OverlayContainer.d.ts +0 -3
  57. package/dist/src/components/core/OverlayContainer.js +0 -58
  58. package/dist/src/components/core/PanelManager/PanelManager.d.ts +0 -21
  59. package/dist/src/components/core/PanelManager/PanelManager.js +0 -86
  60. package/dist/src/components/core/PanelManager/index.d.ts +0 -2
  61. package/dist/src/components/core/PanelManager/index.js +0 -2
  62. package/dist/src/components/core/ScrollableContainer/FocusableItem.d.ts +0 -6
  63. package/dist/src/components/core/ScrollableContainer/FocusableItem.js +0 -38
  64. package/dist/src/components/core/ScrollableContainer/ScrollableContainer.d.ts +0 -77
  65. package/dist/src/components/core/ScrollableContainer/ScrollableContainer.js +0 -168
  66. package/dist/src/components/core/ScrollableContainer/index.d.ts +0 -2
  67. package/dist/src/components/core/ScrollableContainer/index.js +0 -2
  68. package/dist/src/components/molecules/ActionButton/ActionButton.d.ts +0 -48
  69. package/dist/src/components/molecules/ActionButton/ActionButton.js +0 -10
  70. package/dist/src/components/molecules/ActionButton/index.d.ts +0 -2
  71. package/dist/src/components/molecules/ActionButton/index.js +0 -2
  72. package/dist/src/components/molecules/HeadshotImage/HeadshotImage.d.ts +0 -16
  73. package/dist/src/components/molecules/HeadshotImage/HeadshotImage.js +0 -50
  74. package/dist/src/components/molecules/HeadshotImage/index.d.ts +0 -2
  75. package/dist/src/components/molecules/HeadshotImage/index.js +0 -2
  76. package/dist/src/components/molecules/Overlay/Overlay.d.ts +0 -34
  77. package/dist/src/components/molecules/Overlay/Overlay.js +0 -139
  78. package/dist/src/components/molecules/Overlay/index.d.ts +0 -2
  79. package/dist/src/components/molecules/Overlay/index.js +0 -2
  80. package/dist/src/components/molecules/PanelNavButton/PanelNavButton.d.ts +0 -58
  81. package/dist/src/components/molecules/PanelNavButton/PanelNavButton.js +0 -27
  82. package/dist/src/components/molecules/PanelNavButton/index.d.ts +0 -2
  83. package/dist/src/components/molecules/PanelNavButton/index.js +0 -2
  84. package/dist/src/components/molecules/SegmentButton/SegmentButton.d.ts +0 -9
  85. package/dist/src/components/molecules/SegmentButton/SegmentButton.js +0 -10
  86. package/dist/src/components/molecules/SegmentButton/index.d.ts +0 -2
  87. package/dist/src/components/molecules/SegmentButton/index.js +0 -2
  88. package/dist/src/components/molecules/TabLoadError/TabLoadError.d.ts +0 -48
  89. package/dist/src/components/molecules/TabLoadError/TabLoadError.js +0 -14
  90. package/dist/src/components/molecules/TabLoadError/index.d.ts +0 -2
  91. package/dist/src/components/molecules/TabLoadError/index.js +0 -2
  92. package/dist/src/components/molecules/WatchButton/WatchButton.d.ts +0 -10
  93. package/dist/src/components/molecules/WatchButton/WatchButton.js +0 -15
  94. package/dist/src/components/molecules/WatchButton/index.d.ts +0 -2
  95. package/dist/src/components/molecules/WatchButton/index.js +0 -2
  96. package/dist/src/components/organisms/PanelNavigation/PanelNavigation.d.ts +0 -16
  97. package/dist/src/components/organisms/PanelNavigation/PanelNavigation.js +0 -60
  98. package/dist/src/components/organisms/PanelNavigation/index.d.ts +0 -2
  99. package/dist/src/components/organisms/PanelNavigation/index.js +0 -2
  100. package/dist/src/components/organisms/SegmentController/SegmentController.d.ts +0 -29
  101. package/dist/src/components/organisms/SegmentController/SegmentController.js +0 -76
  102. package/dist/src/components/organisms/SegmentController/index.d.ts +0 -3
  103. package/dist/src/components/organisms/SegmentController/index.js +0 -2
  104. package/dist/src/development/MaestroEventDelegate.d.ts +0 -27
  105. package/dist/src/development/MaestroEventDelegate.js +0 -109
  106. package/dist/src/development/TimeSeek.d.ts +0 -22
  107. package/dist/src/development/TimeSeek.js +0 -218
  108. package/dist/src/development/development.d.ts +0 -1
  109. package/dist/src/development/development.js +0 -33
  110. package/dist/src/external/AxiosNetworkClient.d.ts +0 -28
  111. package/dist/src/external/AxiosNetworkClient.js +0 -110
  112. package/dist/src/external/LocalStorageCacheManager.d.ts +0 -65
  113. package/dist/src/external/LocalStorageCacheManager.js +0 -213
  114. package/dist/src/external/ReactRenderer.d.ts +0 -17
  115. package/dist/src/external/ReactRenderer.js +0 -53
  116. package/dist/src/external/mocks/MockExternalNetworkClient.d.ts +0 -104
  117. package/dist/src/external/mocks/MockExternalNetworkClient.js +0 -187
  118. package/dist/src/external/ports/cacheManager.d.ts +0 -17
  119. package/dist/src/external/ports/cacheManager.js +0 -1
  120. package/dist/src/external/ports/networkClient.d.ts +0 -19
  121. package/dist/src/external/ports/networkClient.js +0 -1
  122. package/dist/src/external/ports/renderer.d.ts +0 -4
  123. package/dist/src/external/ports/renderer.js +0 -1
  124. package/dist/src/external/spatial-navigation/__mocks__/withFocusable.d.ts +0 -8
  125. package/dist/src/external/spatial-navigation/__mocks__/withFocusable.js +0 -7
  126. package/dist/src/external/spatial-navigation/index.d.ts +0 -4
  127. package/dist/src/external/spatial-navigation/index.js +0 -3
  128. package/dist/src/external/spatial-navigation/measureLayout.d.ts +0 -2
  129. package/dist/src/external/spatial-navigation/measureLayout.js +0 -30
  130. package/dist/src/external/spatial-navigation/spatialNavigation.d.ts +0 -155
  131. package/dist/src/external/spatial-navigation/spatialNavigation.js +0 -876
  132. package/dist/src/external/spatial-navigation/utils.d.ts +0 -20
  133. package/dist/src/external/spatial-navigation/utils.js +0 -6
  134. package/dist/src/external/spatial-navigation/visualDebugger.d.ts +0 -17
  135. package/dist/src/external/spatial-navigation/visualDebugger.js +0 -76
  136. package/dist/src/external/spatial-navigation/withFocusable.d.ts +0 -77
  137. package/dist/src/external/spatial-navigation/withFocusable.js +0 -245
  138. package/dist/src/helpers/Observable.d.ts +0 -12
  139. package/dist/src/helpers/Observable.js +0 -37
  140. package/dist/src/helpers/strings.d.ts +0 -2
  141. package/dist/src/helpers/strings.js +0 -14
  142. package/dist/src/helpers/url.d.ts +0 -1
  143. package/dist/src/helpers/url.js +0 -12
  144. package/dist/src/index.d.ts +0 -55
  145. package/dist/src/index.js +0 -165
  146. package/dist/src/interfaces/IMaestroEvent.d.ts +0 -126
  147. package/dist/src/interfaces/IMaestroEvent.js +0 -18
  148. package/dist/src/interfaces/IMaestroEventDelegate.d.ts +0 -74
  149. package/dist/src/interfaces/IMaestroEventDelegate.js +0 -1
  150. package/dist/src/interfaces/IMaestroManager.d.ts +0 -45
  151. package/dist/src/interfaces/IMaestroManager.js +0 -1
  152. package/dist/src/interfaces/IUserSettings.d.ts +0 -44
  153. package/dist/src/interfaces/IUserSettings.js +0 -20
  154. package/dist/src/models/IModel.d.ts +0 -7
  155. package/dist/src/models/IModel.js +0 -1
  156. package/dist/src/models/IPanel.d.ts +0 -15
  157. package/dist/src/models/IPanel.js +0 -40
  158. package/dist/src/models/ITheme.d.ts +0 -77
  159. package/dist/src/models/ITheme.js +0 -20
  160. package/dist/src/models/IWinningBet.d.ts +0 -7
  161. package/dist/src/models/IWinningBet.js +0 -1
  162. package/dist/src/modules/bets/interfaces/IBets.d.ts +0 -192
  163. package/dist/src/modules/bets/interfaces/IBets.js +0 -1
  164. package/dist/src/modules/bets/mocks.d.ts +0 -2
  165. package/dist/src/modules/bets/mocks.js +0 -573
  166. package/dist/src/modules/bets/types/BetsAnalyticsTypes.d.ts +0 -8
  167. package/dist/src/modules/bets/types/BetsAnalyticsTypes.js +0 -1
  168. package/dist/src/modules/bets/view/BetsView.d.ts +0 -28
  169. package/dist/src/modules/bets/view/BetsView.js +0 -143
  170. package/dist/src/modules/bets/view/HotProps/HotPropsView.d.ts +0 -54
  171. package/dist/src/modules/bets/view/HotProps/HotPropsView.js +0 -150
  172. package/dist/src/modules/bets/view/SixPack/SixPackView.d.ts +0 -22
  173. package/dist/src/modules/bets/view/SixPack/SixPackView.js +0 -110
  174. package/dist/src/modules/bets/view/UserBets/BetResult/BetResult.d.ts +0 -6
  175. package/dist/src/modules/bets/view/UserBets/BetResult/BetResult.js +0 -6
  176. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCard.d.ts +0 -55
  177. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCard.js +0 -149
  178. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardEvent.d.ts +0 -25
  179. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardEvent.js +0 -34
  180. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardFooter.d.ts +0 -8
  181. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardFooter.js +0 -18
  182. package/dist/src/modules/bets/view/UserBets/Boost/Boost.d.ts +0 -8
  183. package/dist/src/modules/bets/view/UserBets/Boost/Boost.js +0 -6
  184. package/dist/src/modules/bets/view/UserBets/OutcomeBadge/OutcomeBadge.d.ts +0 -7
  185. package/dist/src/modules/bets/view/UserBets/OutcomeBadge/OutcomeBadge.js +0 -9
  186. package/dist/src/modules/bets/view/UserBets/Parlay/Parlay.d.ts +0 -9
  187. package/dist/src/modules/bets/view/UserBets/Parlay/Parlay.js +0 -13
  188. package/dist/src/modules/bets/view/UserBets/Straight/Straight.d.ts +0 -8
  189. package/dist/src/modules/bets/view/UserBets/Straight/Straight.js +0 -6
  190. package/dist/src/modules/bets/view/UserBets/Teaser/Teaser.d.ts +0 -8
  191. package/dist/src/modules/bets/view/UserBets/Teaser/Teaser.js +0 -13
  192. package/dist/src/modules/bets/view/UserBets/UserBetsView.d.ts +0 -25
  193. package/dist/src/modules/bets/view/UserBets/UserBetsView.js +0 -107
  194. package/dist/src/modules/bets/view/components/Bet/Bet.d.ts +0 -70
  195. package/dist/src/modules/bets/view/components/Bet/Bet.js +0 -32
  196. package/dist/src/modules/bets/view/components/BetPill/BetPill.d.ts +0 -6
  197. package/dist/src/modules/bets/view/components/BetPill/BetPill.js +0 -6
  198. package/dist/src/modules/bets/view/components/BetsCard/BetsCard.d.ts +0 -10
  199. package/dist/src/modules/bets/view/components/BetsCard/BetsCard.js +0 -15
  200. package/dist/src/modules/bets/view/components/BetsCard/BetsCardHeader.d.ts +0 -16
  201. package/dist/src/modules/bets/view/components/BetsCard/BetsCardHeader.js +0 -20
  202. package/dist/src/modules/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.d.ts +0 -8
  203. package/dist/src/modules/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.js +0 -14
  204. package/dist/src/modules/bets/view/components/LocationWarning/LocationWarning.d.ts +0 -10
  205. package/dist/src/modules/bets/view/components/LocationWarning/LocationWarning.js +0 -16
  206. package/dist/src/modules/bets/view/components/PromoCodeBanner/PromoCodeBanner.d.ts +0 -17
  207. package/dist/src/modules/bets/view/components/PromoCodeBanner/PromoCodeBanner.js +0 -78
  208. package/dist/src/modules/bets/view/components/PromoCodeBanner/index.d.ts +0 -1
  209. package/dist/src/modules/bets/view/components/PromoCodeBanner/index.js +0 -1
  210. package/dist/src/modules/bets/view-model/BetsViewModel.d.ts +0 -219
  211. package/dist/src/modules/bets/view-model/BetsViewModel.js +0 -974
  212. package/dist/src/modules/fantasy/components/ExpandedAthleteList/ExpandedAthletesList.d.ts +0 -28
  213. package/dist/src/modules/fantasy/components/ExpandedAthleteList/ExpandedAthletesList.js +0 -107
  214. package/dist/src/modules/fantasy/components/ExpandedAthleteList/index.d.ts +0 -1
  215. package/dist/src/modules/fantasy/components/ExpandedAthleteList/index.js +0 -1
  216. package/dist/src/modules/fantasy/components/LeagueCard/LeagueCard.d.ts +0 -56
  217. package/dist/src/modules/fantasy/components/LeagueCard/LeagueCard.js +0 -20
  218. package/dist/src/modules/fantasy/components/LeagueCard/index.d.ts +0 -2
  219. package/dist/src/modules/fantasy/components/LeagueCard/index.js +0 -2
  220. package/dist/src/modules/fantasy/components/TopPlayerCard/TopPlayerCard.d.ts +0 -53
  221. package/dist/src/modules/fantasy/components/TopPlayerCard/TopPlayerCard.js +0 -29
  222. package/dist/src/modules/fantasy/components/TopPlayerCard/index.d.ts +0 -2
  223. package/dist/src/modules/fantasy/components/TopPlayerCard/index.js +0 -2
  224. package/dist/src/modules/fantasy/mocks.d.ts +0 -7620
  225. package/dist/src/modules/fantasy/mocks.js +0 -3682
  226. package/dist/src/modules/fantasy/types.d.ts +0 -176
  227. package/dist/src/modules/fantasy/types.js +0 -6
  228. package/dist/src/modules/fantasy/view/ActiveAthletesMarquee/ActiveAthletesMarquee.d.ts +0 -21
  229. package/dist/src/modules/fantasy/view/ActiveAthletesMarquee/ActiveAthletesMarquee.js +0 -74
  230. package/dist/src/modules/fantasy/view/ActiveAthletesMarquee/index.d.ts +0 -2
  231. package/dist/src/modules/fantasy/view/ActiveAthletesMarquee/index.js +0 -2
  232. package/dist/src/modules/fantasy/view/ErrorBoundary.d.ts +0 -13
  233. package/dist/src/modules/fantasy/view/FantasyItemView.d.ts +0 -21
  234. package/dist/src/modules/fantasy/view/FantasyItemView.js +0 -74
  235. package/dist/src/modules/fantasy/view/FantasyView.d.ts +0 -27
  236. package/dist/src/modules/fantasy/view/FantasyView.js +0 -133
  237. package/dist/src/modules/fantasy/view/InactiveLeague/DraftDateCountdown.d.ts +0 -23
  238. package/dist/src/modules/fantasy/view/InactiveLeague/DraftDateCountdown.js +0 -95
  239. package/dist/src/modules/fantasy/view/InactiveLeague/InactiveLeague.d.ts +0 -52
  240. package/dist/src/modules/fantasy/view/InactiveLeague/InactiveLeague.js +0 -13
  241. package/dist/src/modules/fantasy/view/InactiveLeague/index.d.ts +0 -2
  242. package/dist/src/modules/fantasy/view/InactiveLeague/index.js +0 -2
  243. package/dist/src/modules/fantasy/view/LoginView/LoginView.d.ts +0 -48
  244. package/dist/src/modules/fantasy/view/LoginView/LoginView.js +0 -27
  245. package/dist/src/modules/fantasy/view/LoginView/index.d.ts +0 -2
  246. package/dist/src/modules/fantasy/view/LoginView/index.js +0 -2
  247. package/dist/src/modules/fantasy/view/MatchupPair/DoubleAthleteCard/DoubleAthleteCard.d.ts +0 -49
  248. package/dist/src/modules/fantasy/view/MatchupPair/DoubleAthleteCard/DoubleAthleteCard.js +0 -25
  249. package/dist/src/modules/fantasy/view/MatchupPair/DoubleAthleteCard/index.d.ts +0 -2
  250. package/dist/src/modules/fantasy/view/MatchupPair/DoubleAthleteCard/index.js +0 -2
  251. package/dist/src/modules/fantasy/view/MatchupPair/ExpandedDoubleAthleteCards.d.ts +0 -14
  252. package/dist/src/modules/fantasy/view/MatchupPair/ExpandedDoubleAthleteCards.js +0 -9
  253. package/dist/src/modules/fantasy/view/MatchupPair/MatchupPair.d.ts +0 -54
  254. package/dist/src/modules/fantasy/view/MatchupPair/MatchupPair.js +0 -118
  255. package/dist/src/modules/fantasy/view/MatchupPair/index.d.ts +0 -2
  256. package/dist/src/modules/fantasy/view/MatchupPair/index.js +0 -2
  257. package/dist/src/modules/fantasy/view/MatchupSingle/ExpandedSingleAthleteCards.d.ts +0 -14
  258. package/dist/src/modules/fantasy/view/MatchupSingle/ExpandedSingleAthleteCards.js +0 -9
  259. package/dist/src/modules/fantasy/view/MatchupSingle/MatchupSingle.d.ts +0 -54
  260. package/dist/src/modules/fantasy/view/MatchupSingle/MatchupSingle.js +0 -108
  261. package/dist/src/modules/fantasy/view/MatchupSingle/SingleAthleteCard/SingleAthleteCard.d.ts +0 -49
  262. package/dist/src/modules/fantasy/view/MatchupSingle/SingleAthleteCard/SingleAthleteCard.js +0 -18
  263. package/dist/src/modules/fantasy/view/MatchupSingle/SingleAthleteCard/index.d.ts +0 -2
  264. package/dist/src/modules/fantasy/view/MatchupSingle/SingleAthleteCard/index.js +0 -2
  265. package/dist/src/modules/fantasy/view/MatchupSingle/index.d.ts +0 -2
  266. package/dist/src/modules/fantasy/view/MatchupSingle/index.js +0 -2
  267. package/dist/src/modules/fantasy/view/PromoView/PromoView.d.ts +0 -52
  268. package/dist/src/modules/fantasy/view/PromoView/PromoView.js +0 -12
  269. package/dist/src/modules/fantasy/view/PromoView/index.d.ts +0 -2
  270. package/dist/src/modules/fantasy/view/PromoView/index.js +0 -2
  271. package/dist/src/modules/fantasy/view/index.d.ts +0 -2
  272. package/dist/src/modules/fantasy/view/index.js +0 -2
  273. package/dist/src/modules/fantasy/view-model/FantasyViewModel.FantasyPolling.d.ts +0 -32
  274. package/dist/src/modules/fantasy/view-model/FantasyViewModel.FantasyPolling.js +0 -132
  275. package/dist/src/modules/fantasy/view-model/FantasyViewModel.LeagueManagerPolling.d.ts +0 -32
  276. package/dist/src/modules/fantasy/view-model/FantasyViewModel.LeagueManagerPolling.js +0 -141
  277. package/dist/src/modules/fantasy/view-model/FantasyViewModel.d.ts +0 -148
  278. package/dist/src/modules/fantasy/view-model/FantasyViewModel.js +0 -534
  279. package/dist/src/modules/key-plays/constants.d.ts +0 -3
  280. package/dist/src/modules/key-plays/constants.js +0 -294
  281. package/dist/src/modules/key-plays/interfaces/IKeyPlays.d.ts +0 -32
  282. package/dist/src/modules/key-plays/interfaces/IKeyPlays.js +0 -14
  283. package/dist/src/modules/key-plays/interfaces/IKeyPlaysResponse.d.ts +0 -44
  284. package/dist/src/modules/key-plays/interfaces/IKeyPlaysResponse.js +0 -1
  285. package/dist/src/modules/key-plays/view/KeyPlayCardScoreTagView.d.ts +0 -9
  286. package/dist/src/modules/key-plays/view/KeyPlayCardScoreTagView.js +0 -16
  287. package/dist/src/modules/key-plays/view/KeyPlayCardView.d.ts +0 -38
  288. package/dist/src/modules/key-plays/view/KeyPlayCardView.js +0 -139
  289. package/dist/src/modules/key-plays/view/KeyPlayErrorStateView.d.ts +0 -13
  290. package/dist/src/modules/key-plays/view/KeyPlayErrorStateView.js +0 -65
  291. package/dist/src/modules/key-plays/view/KeyPlaysView.d.ts +0 -37
  292. package/dist/src/modules/key-plays/view/KeyPlaysView.js +0 -151
  293. package/dist/src/modules/key-plays/view-model/KeyPlaysViewModel.d.ts +0 -37
  294. package/dist/src/modules/key-plays/view-model/KeyPlaysViewModel.js +0 -246
  295. package/dist/src/modules/shop/mocks.d.ts +0 -22
  296. package/dist/src/modules/shop/mocks.js +0 -390
  297. package/dist/src/modules/shop/types.d.ts +0 -161
  298. package/dist/src/modules/shop/types.js +0 -7
  299. package/dist/src/modules/shop/view/ProductDetailView/ProductDetailView.d.ts +0 -10
  300. package/dist/src/modules/shop/view/ProductDetailView/ProductDetailView.js +0 -56
  301. package/dist/src/modules/shop/view/ProductDetailView/index.d.ts +0 -2
  302. package/dist/src/modules/shop/view/ProductDetailView/index.js +0 -2
  303. package/dist/src/modules/shop/view/ShopView.d.ts +0 -35
  304. package/dist/src/modules/shop/view/ShopView.js +0 -182
  305. package/dist/src/modules/shop/view/components/BrowseCard/BrowseCard.d.ts +0 -55
  306. package/dist/src/modules/shop/view/components/BrowseCard/BrowseCard.js +0 -23
  307. package/dist/src/modules/shop/view/components/BrowseCard/index.d.ts +0 -2
  308. package/dist/src/modules/shop/view/components/BrowseCard/index.js +0 -2
  309. package/dist/src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.d.ts +0 -56
  310. package/dist/src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.js +0 -26
  311. package/dist/src/modules/shop/view/components/ProductSummaryCard/index.d.ts +0 -2
  312. package/dist/src/modules/shop/view/components/ProductSummaryCard/index.js +0 -1
  313. package/dist/src/modules/shop/view/components/ShopPromoView/ShopPromoView.d.ts +0 -9
  314. package/dist/src/modules/shop/view/components/ShopPromoView/ShopPromoView.js +0 -19
  315. package/dist/src/modules/shop/view/components/ShopPromoView/index.d.ts +0 -1
  316. package/dist/src/modules/shop/view/components/ShopPromoView/index.js +0 -1
  317. package/dist/src/modules/shop/view/components/ShopSection/ShopSection.d.ts +0 -22
  318. package/dist/src/modules/shop/view/components/ShopSection/ShopSection.js +0 -61
  319. package/dist/src/modules/shop/view/components/ShopSection/ShopSectionItem.d.ts +0 -18
  320. package/dist/src/modules/shop/view/components/ShopSection/ShopSectionItem.js +0 -22
  321. package/dist/src/modules/shop/view/components/ShopSection/index.d.ts +0 -1
  322. package/dist/src/modules/shop/view/components/ShopSection/index.js +0 -1
  323. package/dist/src/modules/shop/view/index.d.ts +0 -2
  324. package/dist/src/modules/shop/view/index.js +0 -2
  325. package/dist/src/modules/shop/view-model/ShopViewModel.ShopPolling.d.ts +0 -31
  326. package/dist/src/modules/shop/view-model/ShopViewModel.ShopPolling.js +0 -111
  327. package/dist/src/modules/shop/view-model/ShopViewModel.d.ts +0 -77
  328. package/dist/src/modules/shop/view-model/ShopViewModel.js +0 -353
  329. package/dist/src/modules/stats/interfaces/IStats.d.ts +0 -226
  330. package/dist/src/modules/stats/interfaces/IStats.js +0 -1
  331. package/dist/src/modules/stats/mocks.d.ts +0 -2
  332. package/dist/src/modules/stats/mocks.js +0 -746
  333. package/dist/src/modules/stats/utils/driveSummaryUtils.d.ts +0 -18
  334. package/dist/src/modules/stats/utils/driveSummaryUtils.js +0 -48
  335. package/dist/src/modules/stats/utils/renderTeamStatistic.d.ts +0 -21
  336. package/dist/src/modules/stats/utils/renderTeamStatistic.js +0 -16
  337. package/dist/src/modules/stats/utils.d.ts +0 -39
  338. package/dist/src/modules/stats/utils.js +0 -62
  339. package/dist/src/modules/stats/view/ActiveAthletes/ActiveAthletes.d.ts +0 -22
  340. package/dist/src/modules/stats/view/ActiveAthletes/ActiveAthletes.js +0 -98
  341. package/dist/src/modules/stats/view/ActiveAthletes/CollapsedAthletes/CollapsedAthletes.d.ts +0 -5
  342. package/dist/src/modules/stats/view/ActiveAthletes/CollapsedAthletes/CollapsedAthletes.js +0 -27
  343. package/dist/src/modules/stats/view/ActiveAthletes/ExpandedAthletes/ExpandedAthletes.d.ts +0 -22
  344. package/dist/src/modules/stats/view/ActiveAthletes/ExpandedAthletes/ExpandedAthletes.js +0 -89
  345. package/dist/src/modules/stats/view/ActiveAthletes/index.d.ts +0 -2
  346. package/dist/src/modules/stats/view/ActiveAthletes/index.js +0 -2
  347. package/dist/src/modules/stats/view/DriveSummary/DrivePlayCard.d.ts +0 -60
  348. package/dist/src/modules/stats/view/DriveSummary/DrivePlayCard.js +0 -70
  349. package/dist/src/modules/stats/view/DriveSummary/DriveSummary.d.ts +0 -17
  350. package/dist/src/modules/stats/view/DriveSummary/DriveSummary.js +0 -87
  351. package/dist/src/modules/stats/view/DriveSummary/ExpandedItems/DriveSummaryExpanded.d.ts +0 -27
  352. package/dist/src/modules/stats/view/DriveSummary/ExpandedItems/DriveSummaryExpanded.js +0 -129
  353. package/dist/src/modules/stats/view/DriveSummary/Header/DriveSummaryHeader.d.ts +0 -13
  354. package/dist/src/modules/stats/view/DriveSummary/Header/DriveSummaryHeader.js +0 -26
  355. package/dist/src/modules/stats/view/DriveSummary/MainStat/MainStat.d.ts +0 -11
  356. package/dist/src/modules/stats/view/DriveSummary/MainStat/MainStat.js +0 -24
  357. package/dist/src/modules/stats/view/DriveSummary/index.d.ts +0 -2
  358. package/dist/src/modules/stats/view/DriveSummary/index.js +0 -2
  359. package/dist/src/modules/stats/view/GameLeaders/GameLeaders.d.ts +0 -20
  360. package/dist/src/modules/stats/view/GameLeaders/GameLeaders.js +0 -48
  361. package/dist/src/modules/stats/view/GameLeaders/index.d.ts +0 -2
  362. package/dist/src/modules/stats/view/GameLeaders/index.js +0 -2
  363. package/dist/src/modules/stats/view/MatchPredictor/DonutChart/DonutChart.d.ts +0 -17
  364. package/dist/src/modules/stats/view/MatchPredictor/DonutChart/DonutChart.js +0 -55
  365. package/dist/src/modules/stats/view/MatchPredictor/DonutChart/index.d.ts +0 -2
  366. package/dist/src/modules/stats/view/MatchPredictor/DonutChart/index.js +0 -1
  367. package/dist/src/modules/stats/view/MatchPredictor/MatchPredictorView.d.ts +0 -52
  368. package/dist/src/modules/stats/view/MatchPredictor/MatchPredictorView.js +0 -60
  369. package/dist/src/modules/stats/view/MatchPredictor/index.d.ts +0 -3
  370. package/dist/src/modules/stats/view/MatchPredictor/index.js +0 -2
  371. package/dist/src/modules/stats/view/Penalties/Penalties.d.ts +0 -10
  372. package/dist/src/modules/stats/view/Penalties/Penalties.js +0 -6
  373. package/dist/src/modules/stats/view/Penalties/index.d.ts +0 -2
  374. package/dist/src/modules/stats/view/Penalties/index.js +0 -2
  375. package/dist/src/modules/stats/view/RecentGames/RecentGames.d.ts +0 -52
  376. package/dist/src/modules/stats/view/RecentGames/RecentGames.js +0 -23
  377. package/dist/src/modules/stats/view/RecentGames/index.d.ts +0 -2
  378. package/dist/src/modules/stats/view/RecentGames/index.js +0 -2
  379. package/dist/src/modules/stats/view/ScoringSummary/ExpandedScores/ExpandedScores.d.ts +0 -30
  380. package/dist/src/modules/stats/view/ScoringSummary/ExpandedScores/ExpandedScores.js +0 -121
  381. package/dist/src/modules/stats/view/ScoringSummary/ExpandedScores/index.d.ts +0 -2
  382. package/dist/src/modules/stats/view/ScoringSummary/ExpandedScores/index.js +0 -2
  383. package/dist/src/modules/stats/view/ScoringSummary/ScoreItem/ScoreItem.d.ts +0 -52
  384. package/dist/src/modules/stats/view/ScoringSummary/ScoreItem/ScoreItem.js +0 -62
  385. package/dist/src/modules/stats/view/ScoringSummary/ScoreItem/index.d.ts +0 -2
  386. package/dist/src/modules/stats/view/ScoringSummary/ScoreItem/index.js +0 -2
  387. package/dist/src/modules/stats/view/ScoringSummary/ScoresSection/ScoresSection.d.ts +0 -7
  388. package/dist/src/modules/stats/view/ScoringSummary/ScoresSection/ScoresSection.js +0 -23
  389. package/dist/src/modules/stats/view/ScoringSummary/ScoresSection/index.d.ts +0 -2
  390. package/dist/src/modules/stats/view/ScoringSummary/ScoresSection/index.js +0 -2
  391. package/dist/src/modules/stats/view/ScoringSummary/ScoringSummary.d.ts +0 -26
  392. package/dist/src/modules/stats/view/ScoringSummary/ScoringSummary.js +0 -106
  393. package/dist/src/modules/stats/view/ScoringSummary/index.d.ts +0 -2
  394. package/dist/src/modules/stats/view/ScoringSummary/index.js +0 -2
  395. package/dist/src/modules/stats/view/StatsItemView.d.ts +0 -21
  396. package/dist/src/modules/stats/view/StatsItemView.js +0 -92
  397. package/dist/src/modules/stats/view/StatsQRCode/StatsQRCodeView.d.ts +0 -52
  398. package/dist/src/modules/stats/view/StatsQRCode/StatsQRCodeView.js +0 -36
  399. package/dist/src/modules/stats/view/StatsQRCode/index.d.ts +0 -2
  400. package/dist/src/modules/stats/view/StatsQRCode/index.js +0 -1
  401. package/dist/src/modules/stats/view/StatsView.d.ts +0 -27
  402. package/dist/src/modules/stats/view/StatsView.js +0 -137
  403. package/dist/src/modules/stats/view/TeamStats/TeamStatsView.d.ts +0 -52
  404. package/dist/src/modules/stats/view/TeamStats/TeamStatsView.js +0 -43
  405. package/dist/src/modules/stats/view/TeamStats/index.d.ts +0 -2
  406. package/dist/src/modules/stats/view/TeamStats/index.js +0 -1
  407. package/dist/src/modules/stats/view/Teams/StatsCarousel.d.ts +0 -25
  408. package/dist/src/modules/stats/view/Teams/StatsCarousel.js +0 -83
  409. package/dist/src/modules/stats/view/Teams/StatsProgressBar.d.ts +0 -7
  410. package/dist/src/modules/stats/view/Teams/StatsProgressBar.js +0 -19
  411. package/dist/src/modules/stats/view/Teams/Teams.d.ts +0 -52
  412. package/dist/src/modules/stats/view/Teams/Teams.js +0 -43
  413. package/dist/src/modules/stats/view/Teams/index.d.ts +0 -2
  414. package/dist/src/modules/stats/view/Teams/index.js +0 -2
  415. package/dist/src/modules/stats/view/WinProbability/WinProbability.d.ts +0 -52
  416. package/dist/src/modules/stats/view/WinProbability/WinProbability.js +0 -28
  417. package/dist/src/modules/stats/view/WinProbability/index.d.ts +0 -2
  418. package/dist/src/modules/stats/view/WinProbability/index.js +0 -2
  419. package/dist/src/modules/stats/view/components/AthletesStatistics/AthletesStatistics.d.ts +0 -67
  420. package/dist/src/modules/stats/view/components/AthletesStatistics/AthletesStatistics.js +0 -89
  421. package/dist/src/modules/stats/view/components/AthletesStatistics/StatisticTable.d.ts +0 -4
  422. package/dist/src/modules/stats/view/components/AthletesStatistics/StatisticTable.js +0 -12
  423. package/dist/src/modules/stats/view/components/AthletesStatistics/index.d.ts +0 -2
  424. package/dist/src/modules/stats/view/components/AthletesStatistics/index.js +0 -2
  425. package/dist/src/modules/stats/view/index.d.ts +0 -2
  426. package/dist/src/modules/stats/view/index.js +0 -2
  427. package/dist/src/modules/stats/view-model/StatsViewModel.d.ts +0 -241
  428. package/dist/src/modules/stats/view-model/StatsViewModel.js +0 -989
  429. package/dist/src/sentry.d.ts +0 -3
  430. package/dist/src/sentry.js +0 -31
  431. package/dist/src/services/AnalyticsService/AnalyticsService.d.ts +0 -84
  432. package/dist/src/services/AnalyticsService/AnalyticsService.js +0 -402
  433. package/dist/src/services/AnalyticsService/types.d.ts +0 -65
  434. package/dist/src/services/AnalyticsService/types.js +0 -1
  435. package/dist/src/services/BetsService.d.ts +0 -81
  436. package/dist/src/services/BetsService.js +0 -122
  437. package/dist/src/services/FantasyService.d.ts +0 -53
  438. package/dist/src/services/FantasyService.js +0 -92
  439. package/dist/src/services/GlobalService/GlobalService.d.ts +0 -9
  440. package/dist/src/services/GlobalService/PageService.d.ts +0 -9
  441. package/dist/src/services/GlobalService/index.d.ts +0 -2
  442. package/dist/src/services/GlobalService/mocks.d.ts +0 -2
  443. package/dist/src/services/GlobalService/types.d.ts +0 -11
  444. package/dist/src/services/InsightsService/InsightsPayloadBuilder.d.ts +0 -279
  445. package/dist/src/services/InsightsService/InsightsPayloadBuilder.js +0 -386
  446. package/dist/src/services/InsightsService/InsightsService.d.ts +0 -11
  447. package/dist/src/services/InsightsService/InsightsService.js +0 -74
  448. package/dist/src/services/NetworkManager/NetworkManager.d.ts +0 -147
  449. package/dist/src/services/NetworkManager/NetworkManager.js +0 -457
  450. package/dist/src/services/NetworkManager/NetworkManagerFactory.d.ts +0 -42
  451. package/dist/src/services/NetworkManager/NetworkManagerFactory.js +0 -101
  452. package/dist/src/services/NetworkManager/errors.d.ts +0 -17
  453. package/dist/src/services/NetworkManager/errors.js +0 -45
  454. package/dist/src/services/NetworkManager/types.d.ts +0 -103
  455. package/dist/src/services/NetworkManager/types.js +0 -10
  456. package/dist/src/services/PageService/PageService.d.ts +0 -9
  457. package/dist/src/services/PageService/PageService.js +0 -39
  458. package/dist/src/services/PageService/index.d.ts +0 -2
  459. package/dist/src/services/PageService/index.js +0 -2
  460. package/dist/src/services/PageService/mocks.d.ts +0 -2
  461. package/dist/src/services/PageService/mocks.js +0 -104
  462. package/dist/src/services/PageService/types.d.ts +0 -76
  463. package/dist/src/services/PageService/types.js +0 -1
  464. package/dist/src/services/ShopService.d.ts +0 -23
  465. package/dist/src/services/ShopService.js +0 -46
  466. package/dist/src/services/StaticService/PageService.d.ts +0 -9
  467. package/dist/src/services/StaticService/StaticService.d.ts +0 -12
  468. package/dist/src/services/StaticService/StaticService.js +0 -59
  469. package/dist/src/services/StaticService/index.d.ts +0 -2
  470. package/dist/src/services/StaticService/index.js +0 -2
  471. package/dist/src/services/StaticService/mocks.d.ts +0 -2
  472. package/dist/src/services/StaticService/mocks.js +0 -104
  473. package/dist/src/services/StaticService/types.d.ts +0 -76
  474. package/dist/src/services/StaticService/types.js +0 -1
  475. package/dist/src/services/StatsService.d.ts +0 -46
  476. package/dist/src/services/StatsService.js +0 -147
  477. package/dist/src/services/ThemeManager/constants.d.ts +0 -2
  478. package/dist/src/services/ThemeManager/constants.js +0 -47
  479. package/dist/src/services/UserSettingsManager.d.ts +0 -63
  480. package/dist/src/services/UserSettingsManager.js +0 -155
  481. package/dist/src/test-polyfills.d.ts +0 -1
  482. package/dist/src/test-polyfills.js +0 -15
  483. package/dist/src/types/OverlayTypes.d.ts +0 -43
  484. package/dist/src/types/OverlayTypes.js +0 -4
  485. package/dist/src/view-models/MaestroEventViewModel.d.ts +0 -63
  486. package/dist/src/view-models/MaestroEventViewModel.js +0 -307
  487. package/dist/src/view-models/OverlayViewModel.d.ts +0 -33
  488. package/dist/src/view-models/OverlayViewModel.js +0 -222
  489. package/dist/src/view-models/PanelManagerViewModel.d.ts +0 -46
  490. package/dist/src/view-models/PanelManagerViewModel.js +0 -212
  491. package/dist/src/view-models/ViewModel.d.ts +0 -12
  492. package/dist/src/view-models/ViewModel.js +0 -32
@@ -1,111 +0,0 @@
1
- import { captureException } from '@/sentry';
2
- import { stringHashCode } from '@/helpers/strings';
3
- const DEFAULT_SHOP_POLLING_INTERVAL = 30000; // 30 seconds
4
- export default class ShopPolling {
5
- constructor(service) {
6
- Object.defineProperty(this, "polling", {
7
- enumerable: true,
8
- configurable: true,
9
- writable: true,
10
- value: {
11
- interval: DEFAULT_SHOP_POLLING_INTERVAL,
12
- task: null,
13
- lastResponseHash: null,
14
- }
15
- });
16
- Object.defineProperty(this, "shopService", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: void 0
21
- });
22
- this.shopService = service;
23
- }
24
- /**
25
- * Refresh polling for shop data
26
- */
27
- refresh(callback) {
28
- // First stop any existing polling
29
- this.stop();
30
- // Start the poll loop
31
- this.start(callback);
32
- }
33
- /**
34
- * Stop polling for shop data
35
- */
36
- stop() {
37
- if (this.polling.task) {
38
- this.polling.task.stop();
39
- this.polling.task = null;
40
- }
41
- }
42
- removeLastResponseHash() {
43
- this.polling.lastResponseHash = null;
44
- }
45
- start(callback) {
46
- try {
47
- this.polling.task = this.shopService.pollShopData(this.polling.interval, (response) => {
48
- this.updateInterval(response.headers, callback);
49
- this.processPolledData(response.data, callback);
50
- }, (error) => this.handlePollingError(error));
51
- }
52
- catch (error) {
53
- captureException(error, {
54
- context: 'ShopViewModel.pollShop',
55
- });
56
- console.error('[SHOP] Error setting up shop polling:', error);
57
- }
58
- }
59
- /**
60
- * @description Update polling interval checking either response header or panel config.
61
- * Refresh polling if necessary.
62
- */
63
- updateInterval(headers, callback) {
64
- const headerInterval = this.getResponseHeaderPollingIntervalValue(headers);
65
- // Only update if we have a valid new interval and it's different from current
66
- if (headerInterval && headerInterval !== this.polling.interval) {
67
- console.log(`[SHOP] Updating shop polling interval from ${this.polling.interval}ms to ${headerInterval}ms`);
68
- this.polling.interval = headerInterval;
69
- // Restart polling with the new interval
70
- this.refresh(callback);
71
- }
72
- }
73
- getResponseHeaderPollingIntervalValue(headers) {
74
- const newInterval = headers['polling-interval'];
75
- if (!newInterval) {
76
- return null;
77
- }
78
- const parsedInterval = parseInt(newInterval, 10);
79
- if (isNaN(parsedInterval) || parsedInterval <= 0) {
80
- console.warn(`[SHOP] Invalid polling interval header received: ${newInterval}.`);
81
- return null;
82
- }
83
- return parsedInterval * 1000; // Convert seconds to milliseconds
84
- }
85
- /**
86
- * Process data received from polling
87
- */
88
- processPolledData(data, callback) {
89
- // Calculate hash for the response to check if it's different from the last one
90
- const responseHash = stringHashCode(JSON.stringify(data));
91
- // Check if this is the same as the last successful response
92
- if (this.polling.lastResponseHash === responseHash) {
93
- console.log('[SHOP] Shop Response hash is the same as last successful response - skipping update');
94
- return;
95
- }
96
- this.polling.lastResponseHash = responseHash;
97
- callback(data);
98
- }
99
- /**
100
- * Handle errors that occur during shop polling
101
- */
102
- handlePollingError(error) {
103
- console.error('[SHOP] Shop polling error:', error);
104
- captureException(error, {
105
- context: 'ShopViewModel.pollShop',
106
- extra: {
107
- pollingInterval: this.polling.interval,
108
- },
109
- });
110
- }
111
- }
@@ -1,77 +0,0 @@
1
- import { Observable } from '../../../helpers/Observable';
2
- import { ViewModel } from '../../../view-models/ViewModel';
3
- import { IShopSection, IShopProduct, IShopBrowseCard, IShopDefaultItem } from '../types';
4
- import { TestUseCase } from '@/interfaces/IMaestroEvent';
5
- declare const SHOP_ERROR_STATE: {
6
- readonly NONE: "none";
7
- readonly TAB_LOAD_FAILURE: "tabLoadFailure";
8
- readonly EMPTY_SHOP: "emptyShop";
9
- };
10
- export type ShopErrorState = typeof SHOP_ERROR_STATE[keyof typeof SHOP_ERROR_STATE];
11
- /**
12
- * ViewModel for Shop panel
13
- * Manages shop data fetching, polling, and state
14
- */
15
- export declare class ShopViewModel extends ViewModel {
16
- sections: Observable<IShopSection[]>;
17
- isDataLoading: Observable<boolean>;
18
- errorState: Observable<ShopErrorState>;
19
- hasEverSuccessfullyLoaded: Observable<boolean>;
20
- promoData: Observable<IShopDefaultItem | null>;
21
- private shopService;
22
- private analyticsService;
23
- private shopPolling;
24
- private useMockData;
25
- private mockDataType;
26
- initialized: boolean;
27
- constructor(eventId: string, options?: {
28
- useMockData?: boolean;
29
- mockDataType?: 'nfl' | 'nba' | 'ncf' | 'empty' | 'single';
30
- });
31
- /**
32
- * Initialize the ViewModel and start data fetching
33
- */
34
- init(): void;
35
- /**
36
- * Clean up resources when the ViewModel is no longer needed
37
- */
38
- cleanup(): void;
39
- /**
40
- * Track panel view event
41
- */
42
- private trackPanelView;
43
- /**
44
- * Parse price string to number, handling currency formats
45
- */
46
- private parsePriceToNumber;
47
- /**
48
- * Track shop item card click event
49
- */
50
- trackItemClick(card: 'product_summary' | 'want more' | 'product_detail' | 'fallback', item: IShopProduct | IShopBrowseCard | null, section: IShopSection | null): Promise<void>;
51
- /**
52
- * Refresh polling for shop data
53
- */
54
- refreshPolling(): void;
55
- /**
56
- * Process the shop data and update the sections
57
- */
58
- private processShopData;
59
- setTabLoadFailure(): void;
60
- /**
61
- * Fetch new shop data immediately (one-time)
62
- */
63
- fetchNewData(): void;
64
- /**
65
- * Fetch mock data for testing
66
- */
67
- private fetchMockData;
68
- /**
69
- * Simulate different use cases for testing
70
- */
71
- simulateUseCase<T = any>(useCase: TestUseCase, data: T): void;
72
- /**
73
- * Clear tab load failure and retry
74
- */
75
- clearTabLoadFailure(): void;
76
- }
77
- export default ShopViewModel;
@@ -1,353 +0,0 @@
1
- import { Observable } from '../../../helpers/Observable';
2
- import ShopService from '../../../services/ShopService';
3
- import AnalyticsService from '../../../services/AnalyticsService/AnalyticsService';
4
- import { ViewModel } from '../../../view-models/ViewModel';
5
- import { isShopProduct, } from '../types';
6
- import { MOCK_SHOP_NFL_RESPONSE, MOCK_SHOP_NBA_RESPONSE, MOCK_SHOP_NCF_RESPONSE, MOCK_SHOP_EMPTY_RESPONSE, MOCK_SHOP_SINGLE_SECTION_RESPONSE, } from '../mocks';
7
- import { captureException } from '@/sentry';
8
- import ShopPolling from './ShopViewModel.ShopPolling';
9
- import SDK from '@/index';
10
- const SHOP_ERROR_STATE = {
11
- NONE: 'none',
12
- TAB_LOAD_FAILURE: 'tabLoadFailure',
13
- EMPTY_SHOP: 'emptyShop',
14
- };
15
- /**
16
- * ViewModel for Shop panel
17
- * Manages shop data fetching, polling, and state
18
- */
19
- export class ShopViewModel extends ViewModel {
20
- constructor(eventId, options = {}) {
21
- super();
22
- // Observable properties
23
- Object.defineProperty(this, "sections", {
24
- enumerable: true,
25
- configurable: true,
26
- writable: true,
27
- value: new Observable([])
28
- });
29
- Object.defineProperty(this, "isDataLoading", {
30
- enumerable: true,
31
- configurable: true,
32
- writable: true,
33
- value: new Observable(true)
34
- });
35
- Object.defineProperty(this, "errorState", {
36
- enumerable: true,
37
- configurable: true,
38
- writable: true,
39
- value: new Observable('none')
40
- });
41
- Object.defineProperty(this, "hasEverSuccessfullyLoaded", {
42
- enumerable: true,
43
- configurable: true,
44
- writable: true,
45
- value: new Observable(false)
46
- });
47
- Object.defineProperty(this, "promoData", {
48
- enumerable: true,
49
- configurable: true,
50
- writable: true,
51
- value: new Observable(null)
52
- });
53
- // Properties
54
- Object.defineProperty(this, "shopService", {
55
- enumerable: true,
56
- configurable: true,
57
- writable: true,
58
- value: void 0
59
- });
60
- Object.defineProperty(this, "analyticsService", {
61
- enumerable: true,
62
- configurable: true,
63
- writable: true,
64
- value: void 0
65
- });
66
- Object.defineProperty(this, "shopPolling", {
67
- enumerable: true,
68
- configurable: true,
69
- writable: true,
70
- value: void 0
71
- });
72
- Object.defineProperty(this, "useMockData", {
73
- enumerable: true,
74
- configurable: true,
75
- writable: true,
76
- value: false
77
- });
78
- Object.defineProperty(this, "mockDataType", {
79
- enumerable: true,
80
- configurable: true,
81
- writable: true,
82
- value: 'nfl'
83
- });
84
- Object.defineProperty(this, "initialized", {
85
- enumerable: true,
86
- configurable: true,
87
- writable: true,
88
- value: false
89
- });
90
- this.shopService = new ShopService(eventId);
91
- this.analyticsService = new AnalyticsService();
92
- this.shopPolling = new ShopPolling(this.shopService);
93
- this.useMockData = options.useMockData || false;
94
- this.mockDataType = options.mockDataType || 'nfl';
95
- }
96
- /**
97
- * Initialize the ViewModel and start data fetching
98
- */
99
- init() {
100
- // Track panel view on initialization
101
- this.trackPanelView();
102
- this.fetchNewData();
103
- this.initialized = true;
104
- }
105
- /**
106
- * Clean up resources when the ViewModel is no longer needed
107
- */
108
- cleanup() {
109
- this.shopPolling.stop();
110
- this.initialized = false;
111
- }
112
- /**
113
- * Track panel view event
114
- */
115
- async trackPanelView() {
116
- try {
117
- await this.analyticsService.panelView('espnShop', {});
118
- }
119
- catch (error) {
120
- captureException(error, {
121
- context: 'ShopViewModel.trackPanelView',
122
- });
123
- console.error('[SHOP] Error tracking panel view:', error);
124
- }
125
- }
126
- /**
127
- * Parse price string to number, handling currency formats
128
- */
129
- parsePriceToNumber(priceString) {
130
- // Remove currency symbols and spaces
131
- const cleaned = priceString.replace(/[^0-9.,]/g, '');
132
- // Find the last occurrence of comma or dot (decimal separator)
133
- const lastComma = cleaned.lastIndexOf(',');
134
- const lastDot = cleaned.lastIndexOf('.');
135
- let normalized;
136
- if (lastComma > lastDot) {
137
- // EU format: €1.234,56 -> comma is decimal separator
138
- normalized = cleaned.replace(/\./g, '').replace(',', '.');
139
- }
140
- else if (lastDot > lastComma) {
141
- // US format: $1,234.56 -> dot is decimal separator
142
- normalized = cleaned.replace(/,/g, '');
143
- }
144
- else if (lastComma !== -1) {
145
- // Only comma present, assume decimal: €25,00
146
- normalized = cleaned.replace(',', '.');
147
- }
148
- else if (lastDot !== -1) {
149
- // Only dot present, assume decimal: $25.00
150
- normalized = cleaned;
151
- }
152
- else {
153
- // No separators: 25
154
- normalized = cleaned;
155
- }
156
- return Number(normalized) || 0;
157
- }
158
- /**
159
- * Track shop item card click event
160
- */
161
- async trackItemClick(card, item, section) {
162
- try {
163
- let sale = 0;
164
- let price = null;
165
- const gameState = SDK.getMaestroEventViewModel().statsViewModel?.currentGameState.value ||
166
- 'unknown';
167
- if (item && isShopProduct(item)) {
168
- const basePrice = item.price?.displayRetail;
169
- const currentPrice = item.price?.displayClearance ||
170
- item.price?.displaySale ||
171
- item.price?.displayRetail;
172
- if (currentPrice && basePrice) {
173
- const basePriceNumber = this.parsePriceToNumber(basePrice);
174
- const salePriceNumber = this.parsePriceToNumber(currentPrice);
175
- if (basePriceNumber > 0) {
176
- sale = Math.round((1 - salePriceNumber / basePriceNumber) * 100);
177
- }
178
- else {
179
- sale = 0;
180
- }
181
- price = currentPrice;
182
- }
183
- }
184
- await this.analyticsService.panelClick({
185
- type: 'espnShop',
186
- name: 'shop_item_clicked',
187
- metadata: {
188
- card: [card],
189
- game_state: [gameState],
190
- product: section?.product?.id || null,
191
- entity_type: [section?.product?.type || 'unknown'],
192
- entity_name: [section?.product?.shortDisplayName || 'unknown'],
193
- price,
194
- sale: [`${sale}%`],
195
- },
196
- });
197
- }
198
- catch (error) {
199
- captureException(error, {
200
- context: 'ShopViewModel.trackItemClick',
201
- item,
202
- section,
203
- });
204
- console.error('[SHOP] Error tracking shop item click:', error);
205
- }
206
- }
207
- /**
208
- * Refresh polling for shop data
209
- */
210
- refreshPolling() {
211
- try {
212
- if (this.useMockData) {
213
- return;
214
- }
215
- this.shopPolling.refresh(this.processShopData.bind(this));
216
- }
217
- catch (err) {
218
- this.setTabLoadFailure();
219
- }
220
- }
221
- /**
222
- * Process the shop data and update the sections
223
- */
224
- processShopData(data) {
225
- try {
226
- const shop = data.shop?.[0];
227
- const sections = shop?.sections || [];
228
- // Check if there are any sections
229
- if (!sections?.length && shop?.defaultItem) {
230
- this.errorState.value = 'emptyShop';
231
- this.sections.value = [];
232
- this.promoData.value = shop.defaultItem;
233
- return;
234
- }
235
- // Update sections and clear error state
236
- this.sections.value = sections;
237
- this.errorState.value = 'none';
238
- this.hasEverSuccessfullyLoaded.value = true;
239
- if (this.isDataLoading.value) {
240
- this.isDataLoading.value = false;
241
- }
242
- }
243
- catch (err) {
244
- captureException(err, {
245
- context: 'ShopViewModel.processShopData',
246
- });
247
- console.error('[SHOP] Error processing shop data:', err);
248
- this.setTabLoadFailure();
249
- }
250
- }
251
- setTabLoadFailure() {
252
- if (!this.hasEverSuccessfullyLoaded.value) {
253
- this.errorState.value = 'tabLoadFailure';
254
- this.sections.value = [];
255
- }
256
- if (this.isDataLoading.value) {
257
- this.isDataLoading.value = false;
258
- }
259
- }
260
- /**
261
- * Fetch new shop data immediately (one-time)
262
- */
263
- fetchNewData() {
264
- this.isDataLoading.value = true;
265
- try {
266
- // Handle mock data if enabled
267
- if (this.useMockData) {
268
- this.sections.value = [];
269
- this.fetchMockData();
270
- return;
271
- }
272
- this.refreshPolling();
273
- }
274
- catch (error) {
275
- captureException(error, {
276
- context: 'ShopViewModel.fetchNewData',
277
- });
278
- console.error('[SHOP] Error fetching shop data:', error);
279
- this.setTabLoadFailure();
280
- }
281
- }
282
- /**
283
- * Fetch mock data for testing
284
- */
285
- fetchMockData() {
286
- let mockData;
287
- switch (this.mockDataType) {
288
- case 'nba':
289
- mockData = MOCK_SHOP_NBA_RESPONSE;
290
- break;
291
- case 'ncf':
292
- mockData = MOCK_SHOP_NCF_RESPONSE;
293
- break;
294
- case 'empty':
295
- mockData = MOCK_SHOP_EMPTY_RESPONSE;
296
- break;
297
- case 'single':
298
- mockData = MOCK_SHOP_SINGLE_SECTION_RESPONSE;
299
- break;
300
- case 'nfl':
301
- default:
302
- mockData = MOCK_SHOP_NFL_RESPONSE;
303
- break;
304
- }
305
- this.processShopData(mockData);
306
- this.hasEverSuccessfullyLoaded.value = true;
307
- this.isDataLoading.value = false;
308
- }
309
- /**
310
- * Simulate different use cases for testing
311
- */
312
- simulateUseCase(useCase, data) {
313
- switch (useCase) {
314
- case 'shopTabLoadFailure':
315
- this.errorState.value = 'tabLoadFailure';
316
- this.sections.value = [];
317
- break;
318
- case 'shopEmptyState':
319
- this.errorState.value = 'emptyShop';
320
- this.sections.value = [];
321
- break;
322
- case 'shopMockData':
323
- this.shopPolling.stop();
324
- this.useMockData = true;
325
- this.mockDataType = data?.mockDataType || 'nfl';
326
- this.shopPolling.removeLastResponseHash();
327
- this.errorState.value = 'none';
328
- this.fetchNewData();
329
- break;
330
- case 'shopLiveData':
331
- this.useMockData = false;
332
- this.shopPolling.removeLastResponseHash();
333
- this.hasEverSuccessfullyLoaded.value = false;
334
- this.errorState.value = 'none';
335
- this.fetchNewData();
336
- this.refreshPolling();
337
- break;
338
- default:
339
- throw new Error(`Unsupported use case: ${useCase}`);
340
- }
341
- }
342
- /**
343
- * Clear tab load failure and retry
344
- */
345
- clearTabLoadFailure() {
346
- this.errorState.value = 'none';
347
- this.shopPolling.removeLastResponseHash();
348
- setTimeout(() => {
349
- this.refreshPolling();
350
- }, 100);
351
- }
352
- }
353
- export default ShopViewModel;