@maestro_io/maestro-web-sdk 3.3.1 → 4.0.0-beta.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 (370) hide show
  1. package/dist/f8820fca3a2a7957f753167da0884f9d.png +0 -0
  2. package/dist/maestro-web-sdk.esm.js +12 -12
  3. package/dist/maestro-web-sdk.esm.js.map +1 -1
  4. package/dist/maestro-web-sdk.umd.js +12 -12
  5. package/dist/maestro-web-sdk.umd.js.map +1 -1
  6. package/dist/package.json +91 -0
  7. package/dist/src/__mocks__/sentry.d.ts +4 -0
  8. package/dist/src/components/atoms/BaseButton/BaseButton.d.ts +1 -1
  9. package/dist/src/components/atoms/BaseButton/BaseButton.js +11 -0
  10. package/dist/src/components/atoms/BaseButton/index.js +2 -0
  11. package/dist/src/components/atoms/Image/index.d.ts +1 -1
  12. package/dist/src/components/atoms/Image/index.js +34 -0
  13. package/dist/src/components/atoms/Rive/index.d.ts +141 -11
  14. package/dist/src/components/atoms/Rive/index.js +53 -0
  15. package/dist/src/components/atoms/SvgIcon/BetGeneralIcon.d.ts +1 -2
  16. package/dist/src/components/atoms/SvgIcon/BetGeneralIcon.js +9 -0
  17. package/dist/src/components/atoms/SvgIcon/BetsIcon.d.ts +1 -1
  18. package/dist/src/components/atoms/SvgIcon/BetsIcon.js +11 -0
  19. package/dist/src/components/atoms/SvgIcon/BetsWarningIcon.d.ts +1 -1
  20. package/dist/src/components/atoms/SvgIcon/BetsWarningIcon.js +11 -0
  21. package/dist/src/components/atoms/SvgIcon/CheckmarkIcon.d.ts +1 -2
  22. package/dist/src/components/atoms/SvgIcon/CheckmarkIcon.js +6 -0
  23. package/dist/src/components/atoms/SvgIcon/CollapseIcon.d.ts +1 -2
  24. package/dist/src/components/atoms/SvgIcon/CollapseIcon.js +6 -0
  25. package/dist/src/components/atoms/SvgIcon/ExpandIcon.d.ts +1 -2
  26. package/dist/src/components/atoms/SvgIcon/ExpandIcon.js +6 -0
  27. package/dist/src/components/atoms/SvgIcon/FantasyIcon.d.ts +1 -1
  28. package/dist/src/components/atoms/SvgIcon/FantasyIcon.js +15 -0
  29. package/dist/src/components/atoms/SvgIcon/FlameIcon.d.ts +1 -1
  30. package/dist/src/components/atoms/SvgIcon/FlameIcon.js +11 -0
  31. package/dist/src/components/atoms/SvgIcon/Icon.d.ts +5 -5
  32. package/dist/src/components/atoms/SvgIcon/Icon.js +44 -0
  33. package/dist/src/components/atoms/SvgIcon/KeyPlaysIcon.d.ts +1 -1
  34. package/dist/src/components/atoms/SvgIcon/KeyPlaysIcon.js +10 -0
  35. package/dist/src/components/atoms/SvgIcon/MobilePhoneIcon.d.ts +1 -1
  36. package/dist/src/components/atoms/SvgIcon/MobilePhoneIcon.js +11 -0
  37. package/dist/src/components/atoms/SvgIcon/PlayIcon.d.ts +1 -1
  38. package/dist/src/components/atoms/SvgIcon/PlayIcon.js +8 -0
  39. package/dist/src/components/atoms/SvgIcon/ShopIcon.d.ts +1 -1
  40. package/dist/src/components/atoms/SvgIcon/ShopIcon.js +7 -0
  41. package/dist/src/components/atoms/SvgIcon/StatsIcon.d.ts +1 -1
  42. package/dist/src/components/atoms/SvgIcon/StatsIcon.js +12 -0
  43. package/dist/src/components/atoms/SvgIcon/TimesIcon.d.ts +1 -2
  44. package/dist/src/components/atoms/SvgIcon/TimesIcon.js +6 -0
  45. package/dist/src/components/atoms/SvgIcon/WarningIcon.d.ts +1 -1
  46. package/dist/src/components/atoms/SvgIcon/WarningIcon.js +8 -0
  47. package/dist/src/components/atoms/SvgIcon/index.js +2 -0
  48. package/dist/src/components/core/App/App.d.ts +1 -1
  49. package/dist/src/components/core/App/App.js +35 -0
  50. package/dist/src/components/core/App/index.js +2 -0
  51. package/dist/src/components/core/OverlayContainer.js +58 -0
  52. package/dist/src/components/core/PanelManager/PanelManager.d.ts +1 -1
  53. package/dist/src/components/core/PanelManager/PanelManager.js +86 -0
  54. package/dist/src/components/core/PanelManager/index.js +2 -0
  55. package/dist/src/components/core/ScrollableContainer/FocusableItem.js +38 -0
  56. package/dist/src/components/core/ScrollableContainer/ScrollableContainer.d.ts +8 -7
  57. package/dist/src/components/core/ScrollableContainer/ScrollableContainer.js +169 -0
  58. package/dist/src/components/core/ScrollableContainer/index.js +2 -0
  59. package/dist/src/components/molecules/ActionButton/ActionButton.d.ts +53 -7
  60. package/dist/src/components/molecules/ActionButton/ActionButton.js +10 -0
  61. package/dist/src/components/molecules/ActionButton/index.js +2 -0
  62. package/dist/src/components/molecules/HeadshotImage/HeadshotImage.d.ts +1 -1
  63. package/dist/src/components/molecules/HeadshotImage/HeadshotImage.js +50 -0
  64. package/dist/src/components/molecules/HeadshotImage/index.js +2 -0
  65. package/dist/src/components/molecules/Overlay/Overlay.d.ts +1 -1
  66. package/dist/src/components/molecules/Overlay/Overlay.js +139 -0
  67. package/dist/src/components/molecules/Overlay/index.js +2 -0
  68. package/dist/src/components/molecules/PanelNavButton/PanelNavButton.d.ts +53 -7
  69. package/dist/src/components/molecules/PanelNavButton/PanelNavButton.js +27 -0
  70. package/dist/src/components/molecules/PanelNavButton/index.js +2 -0
  71. package/dist/src/components/molecules/SegmentButton/SegmentButton.js +10 -0
  72. package/dist/src/components/molecules/SegmentButton/index.js +2 -0
  73. package/dist/src/components/molecules/TabLoadError/TabLoadError.d.ts +53 -7
  74. package/dist/src/components/molecules/TabLoadError/TabLoadError.js +14 -0
  75. package/dist/src/components/molecules/TabLoadError/index.js +2 -0
  76. package/dist/src/components/molecules/WatchButton/WatchButton.d.ts +1 -1
  77. package/dist/src/components/molecules/WatchButton/WatchButton.js +15 -0
  78. package/dist/src/components/molecules/WatchButton/index.js +2 -0
  79. package/dist/src/components/organisms/PanelNavigation/PanelNavigation.d.ts +1 -1
  80. package/dist/src/components/organisms/PanelNavigation/PanelNavigation.js +60 -0
  81. package/dist/src/components/organisms/PanelNavigation/index.js +2 -0
  82. package/dist/src/components/organisms/SegmentController/SegmentController.d.ts +5 -4
  83. package/dist/src/components/organisms/SegmentController/SegmentController.js +76 -0
  84. package/dist/src/components/organisms/SegmentController/index.js +2 -0
  85. package/dist/src/development/MaestroEventDelegate.js +109 -0
  86. package/dist/src/development/TimeSeek.d.ts +1 -1
  87. package/dist/src/development/TimeSeek.js +218 -0
  88. package/dist/src/development/development.js +36 -0
  89. package/dist/src/external/AxiosNetworkClient.js +110 -0
  90. package/dist/src/external/LocalStorageCacheManager.js +213 -0
  91. package/dist/src/external/ReactRenderer.js +65 -0
  92. package/dist/src/external/mocks/MockExternalNetworkClient.js +187 -0
  93. package/dist/src/external/ports/cacheManager.js +1 -0
  94. package/dist/src/external/ports/networkClient.js +1 -0
  95. package/dist/src/external/ports/renderer.d.ts +1 -2
  96. package/dist/src/external/ports/renderer.js +1 -0
  97. package/dist/src/external/spatial-navigation/__mocks__/withFocusable.d.ts +8 -0
  98. package/dist/src/external/spatial-navigation/__mocks__/withFocusable.js +7 -0
  99. package/dist/src/external/spatial-navigation/index.js +3 -0
  100. package/dist/src/external/spatial-navigation/measureLayout.js +30 -0
  101. package/dist/src/external/spatial-navigation/spatialNavigation.js +876 -0
  102. package/dist/src/external/spatial-navigation/utils.js +6 -0
  103. package/dist/src/external/spatial-navigation/visualDebugger.js +76 -0
  104. package/dist/src/external/spatial-navigation/withFocusable.d.ts +53 -7
  105. package/dist/src/external/spatial-navigation/withFocusable.js +245 -0
  106. package/dist/src/helpers/Observable.js +37 -0
  107. package/dist/src/helpers/strings.js +14 -0
  108. package/dist/src/helpers/url.js +12 -0
  109. package/dist/src/index.d.ts +5 -5
  110. package/dist/src/index.js +165 -0
  111. package/dist/src/interfaces/IMaestroEvent.js +18 -0
  112. package/dist/src/interfaces/IMaestroEventDelegate.js +1 -0
  113. package/dist/src/interfaces/IMaestroManager.js +1 -0
  114. package/dist/src/interfaces/IUserSettings.js +20 -0
  115. package/dist/src/models/IModel.js +1 -0
  116. package/dist/src/models/IPanel.js +40 -0
  117. package/dist/src/models/ITheme.js +20 -0
  118. package/dist/src/models/IWinningBet.js +1 -0
  119. package/dist/src/modules/bets/interfaces/IBets.js +1 -0
  120. package/dist/src/modules/bets/mocks.js +573 -0
  121. package/dist/src/modules/bets/types/BetsAnalyticsTypes.js +1 -0
  122. package/dist/src/modules/bets/view/BetsView.d.ts +3 -3
  123. package/dist/src/modules/bets/view/BetsView.js +143 -0
  124. package/dist/src/modules/bets/view/HotProps/HotPropsView.d.ts +53 -7
  125. package/dist/src/modules/bets/view/HotProps/HotPropsView.js +150 -0
  126. package/dist/src/modules/bets/view/SixPack/SixPackView.d.ts +5 -4
  127. package/dist/src/modules/bets/view/SixPack/SixPackView.js +110 -0
  128. package/dist/src/modules/bets/view/UserBets/BetResult/BetResult.d.ts +1 -1
  129. package/dist/src/modules/bets/view/UserBets/BetResult/BetResult.js +6 -0
  130. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCard.d.ts +53 -7
  131. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCard.js +149 -0
  132. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardEvent.d.ts +5 -4
  133. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardEvent.js +34 -0
  134. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardFooter.d.ts +1 -2
  135. package/dist/src/modules/bets/view/UserBets/BetsCard/BetsCardFooter.js +18 -0
  136. package/dist/src/modules/bets/view/UserBets/Boost/Boost.d.ts +1 -2
  137. package/dist/src/modules/bets/view/UserBets/Boost/Boost.js +6 -0
  138. package/dist/src/modules/bets/view/UserBets/OutcomeBadge/OutcomeBadge.d.ts +1 -2
  139. package/dist/src/modules/bets/view/UserBets/OutcomeBadge/OutcomeBadge.js +9 -0
  140. package/dist/src/modules/bets/view/UserBets/Parlay/Parlay.d.ts +1 -2
  141. package/dist/src/modules/bets/view/UserBets/Parlay/Parlay.js +13 -0
  142. package/dist/src/modules/bets/view/UserBets/Straight/Straight.d.ts +1 -2
  143. package/dist/src/modules/bets/view/UserBets/Straight/Straight.js +6 -0
  144. package/dist/src/modules/bets/view/UserBets/Teaser/Teaser.d.ts +1 -2
  145. package/dist/src/modules/bets/view/UserBets/Teaser/Teaser.js +13 -0
  146. package/dist/src/modules/bets/view/UserBets/UserBetsView.d.ts +3 -3
  147. package/dist/src/modules/bets/view/UserBets/UserBetsView.js +107 -0
  148. package/dist/src/modules/bets/view/components/Bet/Bet.d.ts +99 -11
  149. package/dist/src/modules/bets/view/components/Bet/Bet.js +32 -0
  150. package/dist/src/modules/bets/view/components/BetPill/BetPill.d.ts +1 -1
  151. package/dist/src/modules/bets/view/components/BetPill/BetPill.js +6 -0
  152. package/dist/src/modules/bets/view/components/BetsCard/BetsCard.js +15 -0
  153. package/dist/src/modules/bets/view/components/BetsCard/BetsCardHeader.d.ts +1 -1
  154. package/dist/src/modules/bets/view/components/BetsCard/BetsCardHeader.js +20 -0
  155. package/dist/src/modules/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.d.ts +1 -1
  156. package/dist/src/modules/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.js +14 -0
  157. package/dist/src/modules/bets/view/components/LocationWarning/LocationWarning.d.ts +1 -1
  158. package/dist/src/modules/bets/view/components/LocationWarning/LocationWarning.js +16 -0
  159. package/dist/src/modules/bets/view/components/PromoCodeBanner/PromoCodeBanner.d.ts +5 -4
  160. package/dist/src/modules/bets/view/components/PromoCodeBanner/PromoCodeBanner.js +78 -0
  161. package/dist/src/modules/bets/view/components/PromoCodeBanner/index.js +1 -0
  162. package/dist/src/modules/bets/view-model/BetsViewModel.js +974 -0
  163. package/dist/src/modules/fantasy/components/ExpandedAthleteList/ExpandedAthletesList.d.ts +1 -1
  164. package/dist/src/modules/fantasy/components/ExpandedAthleteList/ExpandedAthletesList.js +107 -0
  165. package/dist/src/modules/fantasy/components/ExpandedAthleteList/index.js +1 -0
  166. package/dist/src/modules/fantasy/components/LeagueCard/LeagueCard.d.ts +53 -7
  167. package/dist/src/modules/fantasy/components/LeagueCard/LeagueCard.js +20 -0
  168. package/dist/src/modules/fantasy/components/LeagueCard/index.js +2 -0
  169. package/dist/src/modules/fantasy/components/TopPlayerCard/TopPlayerCard.d.ts +53 -7
  170. package/dist/src/modules/fantasy/components/TopPlayerCard/TopPlayerCard.js +29 -0
  171. package/dist/src/modules/fantasy/components/TopPlayerCard/index.js +2 -0
  172. package/dist/src/modules/fantasy/mocks.js +3682 -0
  173. package/dist/src/modules/fantasy/types.js +6 -0
  174. package/dist/src/modules/fantasy/view/ActiveAthletesMarquee/ActiveAthletesMarquee.d.ts +1 -1
  175. package/dist/src/modules/fantasy/view/ActiveAthletesMarquee/ActiveAthletesMarquee.js +74 -0
  176. package/dist/src/modules/fantasy/view/ActiveAthletesMarquee/index.js +2 -0
  177. package/dist/src/modules/fantasy/view/ErrorBoundary.d.ts +13 -0
  178. package/dist/src/modules/fantasy/view/FantasyItemView.d.ts +6 -5
  179. package/dist/src/modules/fantasy/view/FantasyItemView.js +74 -0
  180. package/dist/src/modules/fantasy/view/FantasyView.d.ts +3 -3
  181. package/dist/src/modules/fantasy/view/FantasyView.js +133 -0
  182. package/dist/src/modules/fantasy/view/InactiveLeague/DraftDateCountdown.d.ts +1 -1
  183. package/dist/src/modules/fantasy/view/InactiveLeague/DraftDateCountdown.js +95 -0
  184. package/dist/src/modules/fantasy/view/InactiveLeague/InactiveLeague.d.ts +53 -7
  185. package/dist/src/modules/fantasy/view/InactiveLeague/InactiveLeague.js +13 -0
  186. package/dist/src/modules/fantasy/view/InactiveLeague/index.js +2 -0
  187. package/dist/src/modules/fantasy/view/LoginView/LoginView.d.ts +53 -7
  188. package/dist/src/modules/fantasy/view/LoginView/LoginView.js +27 -0
  189. package/dist/src/modules/fantasy/view/LoginView/index.js +2 -0
  190. package/dist/src/modules/fantasy/view/MatchupPair/DoubleAthleteCard/DoubleAthleteCard.d.ts +53 -7
  191. package/dist/src/modules/fantasy/view/MatchupPair/DoubleAthleteCard/DoubleAthleteCard.js +25 -0
  192. package/dist/src/modules/fantasy/view/MatchupPair/DoubleAthleteCard/index.js +2 -0
  193. package/dist/src/modules/fantasy/view/MatchupPair/ExpandedDoubleAthleteCards.d.ts +1 -1
  194. package/dist/src/modules/fantasy/view/MatchupPair/ExpandedDoubleAthleteCards.js +9 -0
  195. package/dist/src/modules/fantasy/view/MatchupPair/MatchupPair.d.ts +53 -7
  196. package/dist/src/modules/fantasy/view/MatchupPair/MatchupPair.js +118 -0
  197. package/dist/src/modules/fantasy/view/MatchupPair/index.js +2 -0
  198. package/dist/src/modules/fantasy/view/MatchupSingle/ExpandedSingleAthleteCards.d.ts +1 -1
  199. package/dist/src/modules/fantasy/view/MatchupSingle/ExpandedSingleAthleteCards.js +9 -0
  200. package/dist/src/modules/fantasy/view/MatchupSingle/MatchupSingle.d.ts +53 -7
  201. package/dist/src/modules/fantasy/view/MatchupSingle/MatchupSingle.js +108 -0
  202. package/dist/src/modules/fantasy/view/MatchupSingle/SingleAthleteCard/SingleAthleteCard.d.ts +53 -7
  203. package/dist/src/modules/fantasy/view/MatchupSingle/SingleAthleteCard/SingleAthleteCard.js +18 -0
  204. package/dist/src/modules/fantasy/view/MatchupSingle/SingleAthleteCard/index.js +2 -0
  205. package/dist/src/modules/fantasy/view/MatchupSingle/index.js +2 -0
  206. package/dist/src/modules/fantasy/view/PromoView/PromoView.d.ts +53 -7
  207. package/dist/src/modules/fantasy/view/PromoView/PromoView.js +12 -0
  208. package/dist/src/modules/fantasy/view/PromoView/index.js +2 -0
  209. package/dist/src/modules/fantasy/view/index.js +2 -0
  210. package/dist/src/modules/fantasy/view-model/FantasyViewModel.FantasyPolling.js +132 -0
  211. package/dist/src/modules/fantasy/view-model/FantasyViewModel.LeagueManagerPolling.js +141 -0
  212. package/dist/src/modules/fantasy/view-model/FantasyViewModel.js +534 -0
  213. package/dist/src/modules/key-plays/constants.js +292 -0
  214. package/dist/src/modules/key-plays/interfaces/IKeyPlays.js +14 -0
  215. package/dist/src/modules/key-plays/interfaces/IKeyPlaysResponse.js +1 -0
  216. package/dist/src/modules/key-plays/view/KeyPlayCardScoreTagView.d.ts +1 -1
  217. package/dist/src/modules/key-plays/view/KeyPlayCardScoreTagView.js +16 -0
  218. package/dist/src/modules/key-plays/view/KeyPlayCardView.d.ts +7 -6
  219. package/dist/src/modules/key-plays/view/KeyPlayCardView.js +139 -0
  220. package/dist/src/modules/key-plays/view/KeyPlayErrorStateView.d.ts +1 -1
  221. package/dist/src/modules/key-plays/view/KeyPlayErrorStateView.js +65 -0
  222. package/dist/src/modules/key-plays/view/KeyPlaysView.d.ts +3 -3
  223. package/dist/src/modules/key-plays/view/KeyPlaysView.js +151 -0
  224. package/dist/src/modules/key-plays/view-model/KeyPlaysViewModel.js +247 -0
  225. package/dist/src/modules/shop/mocks.js +390 -0
  226. package/dist/src/modules/shop/types.js +7 -0
  227. package/dist/src/modules/shop/view/ProductDetailView/ProductDetailView.d.ts +1 -2
  228. package/dist/src/modules/shop/view/ProductDetailView/ProductDetailView.js +56 -0
  229. package/dist/src/modules/shop/view/ProductDetailView/index.js +2 -0
  230. package/dist/src/modules/shop/view/ShopView.d.ts +3 -3
  231. package/dist/src/modules/shop/view/ShopView.js +182 -0
  232. package/dist/src/modules/shop/view/components/BrowseCard/BrowseCard.d.ts +54 -8
  233. package/dist/src/modules/shop/view/components/BrowseCard/BrowseCard.js +23 -0
  234. package/dist/src/modules/shop/view/components/BrowseCard/index.js +2 -0
  235. package/dist/src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.d.ts +53 -7
  236. package/dist/src/modules/shop/view/components/ProductSummaryCard/ProductSummaryCard.js +26 -0
  237. package/dist/src/modules/shop/view/components/ProductSummaryCard/index.js +1 -0
  238. package/dist/src/modules/shop/view/components/ShopPromoView/ShopPromoView.d.ts +1 -2
  239. package/dist/src/modules/shop/view/components/ShopPromoView/ShopPromoView.js +19 -0
  240. package/dist/src/modules/shop/view/components/ShopPromoView/index.js +1 -0
  241. package/dist/src/modules/shop/view/components/ShopSection/ShopSection.d.ts +6 -4
  242. package/dist/src/modules/shop/view/components/ShopSection/ShopSection.js +61 -0
  243. package/dist/src/modules/shop/view/components/ShopSection/ShopSectionItem.d.ts +18 -0
  244. package/dist/src/modules/shop/view/components/ShopSection/ShopSectionItem.js +22 -0
  245. package/dist/src/modules/shop/view/components/ShopSection/index.js +1 -0
  246. package/dist/src/modules/shop/view/index.js +2 -0
  247. package/dist/src/modules/shop/view-model/ShopViewModel.ShopPolling.js +111 -0
  248. package/dist/src/modules/shop/view-model/ShopViewModel.js +353 -0
  249. package/dist/src/modules/stats/interfaces/IStats.js +1 -0
  250. package/dist/src/modules/stats/mocks.js +746 -0
  251. package/dist/src/modules/stats/utils/driveSummaryUtils.js +48 -0
  252. package/dist/src/modules/stats/utils/renderTeamStatistic.d.ts +1 -2
  253. package/dist/src/modules/stats/utils/renderTeamStatistic.js +16 -0
  254. package/dist/src/modules/stats/utils.js +62 -0
  255. package/dist/src/modules/stats/view/ActiveAthletes/ActiveAthletes.d.ts +2 -2
  256. package/dist/src/modules/stats/view/ActiveAthletes/ActiveAthletes.js +98 -0
  257. package/dist/src/modules/stats/view/ActiveAthletes/CollapsedAthletes/CollapsedAthletes.d.ts +1 -2
  258. package/dist/src/modules/stats/view/ActiveAthletes/CollapsedAthletes/CollapsedAthletes.js +27 -0
  259. package/dist/src/modules/stats/view/ActiveAthletes/ExpandedAthletes/ExpandedAthletes.d.ts +1 -1
  260. package/dist/src/modules/stats/view/ActiveAthletes/ExpandedAthletes/ExpandedAthletes.js +89 -0
  261. package/dist/src/modules/stats/view/ActiveAthletes/index.js +2 -0
  262. package/dist/src/modules/stats/view/DriveSummary/DrivePlayCard.d.ts +53 -7
  263. package/dist/src/modules/stats/view/DriveSummary/DrivePlayCard.js +70 -0
  264. package/dist/src/modules/stats/view/DriveSummary/DriveSummary.d.ts +1 -1
  265. package/dist/src/modules/stats/view/DriveSummary/DriveSummary.js +87 -0
  266. package/dist/src/modules/stats/view/DriveSummary/ExpandedItems/DriveSummaryExpanded.d.ts +1 -1
  267. package/dist/src/modules/stats/view/DriveSummary/ExpandedItems/DriveSummaryExpanded.js +129 -0
  268. package/dist/src/modules/stats/view/DriveSummary/Header/DriveSummaryHeader.d.ts +1 -2
  269. package/dist/src/modules/stats/view/DriveSummary/Header/DriveSummaryHeader.js +26 -0
  270. package/dist/src/modules/stats/view/DriveSummary/MainStat/MainStat.d.ts +1 -2
  271. package/dist/src/modules/stats/view/DriveSummary/MainStat/MainStat.js +24 -0
  272. package/dist/src/modules/stats/view/DriveSummary/index.js +2 -0
  273. package/dist/src/modules/stats/view/GameLeaders/GameLeaders.d.ts +5 -4
  274. package/dist/src/modules/stats/view/GameLeaders/GameLeaders.js +48 -0
  275. package/dist/src/modules/stats/view/GameLeaders/index.js +2 -0
  276. package/dist/src/modules/stats/view/MatchPredictor/DonutChart/DonutChart.d.ts +2 -2
  277. package/dist/src/modules/stats/view/MatchPredictor/DonutChart/DonutChart.js +55 -0
  278. package/dist/src/modules/stats/view/MatchPredictor/DonutChart/index.js +1 -0
  279. package/dist/src/modules/stats/view/MatchPredictor/MatchPredictorView.d.ts +53 -7
  280. package/dist/src/modules/stats/view/MatchPredictor/MatchPredictorView.js +60 -0
  281. package/dist/src/modules/stats/view/MatchPredictor/index.js +2 -0
  282. package/dist/src/modules/stats/view/Penalties/Penalties.d.ts +1 -2
  283. package/dist/src/modules/stats/view/Penalties/Penalties.js +6 -0
  284. package/dist/src/modules/stats/view/Penalties/index.js +2 -0
  285. package/dist/src/modules/stats/view/RecentGames/RecentGames.d.ts +53 -7
  286. package/dist/src/modules/stats/view/RecentGames/RecentGames.js +23 -0
  287. package/dist/src/modules/stats/view/RecentGames/index.js +2 -0
  288. package/dist/src/modules/stats/view/ScoringSummary/ExpandedScores/ExpandedScores.d.ts +1 -1
  289. package/dist/src/modules/stats/view/ScoringSummary/ExpandedScores/ExpandedScores.js +121 -0
  290. package/dist/src/modules/stats/view/ScoringSummary/ExpandedScores/index.js +2 -0
  291. package/dist/src/modules/stats/view/ScoringSummary/ScoreItem/ScoreItem.d.ts +53 -7
  292. package/dist/src/modules/stats/view/ScoringSummary/ScoreItem/ScoreItem.js +62 -0
  293. package/dist/src/modules/stats/view/ScoringSummary/ScoreItem/index.js +2 -0
  294. package/dist/src/modules/stats/view/ScoringSummary/ScoresSection/ScoresSection.d.ts +1 -2
  295. package/dist/src/modules/stats/view/ScoringSummary/ScoresSection/ScoresSection.js +23 -0
  296. package/dist/src/modules/stats/view/ScoringSummary/ScoresSection/index.js +2 -0
  297. package/dist/src/modules/stats/view/ScoringSummary/ScoringSummary.d.ts +2 -2
  298. package/dist/src/modules/stats/view/ScoringSummary/ScoringSummary.js +106 -0
  299. package/dist/src/modules/stats/view/ScoringSummary/index.js +2 -0
  300. package/dist/src/modules/stats/view/StatsItemView.d.ts +6 -5
  301. package/dist/src/modules/stats/view/StatsItemView.js +92 -0
  302. package/dist/src/modules/stats/view/StatsQRCode/StatsQRCodeView.d.ts +53 -7
  303. package/dist/src/modules/stats/view/StatsQRCode/StatsQRCodeView.js +36 -0
  304. package/dist/src/modules/stats/view/StatsQRCode/index.js +1 -0
  305. package/dist/src/modules/stats/view/StatsView.d.ts +3 -3
  306. package/dist/src/modules/stats/view/StatsView.js +137 -0
  307. package/dist/src/modules/stats/view/TeamStats/TeamStatsView.d.ts +53 -7
  308. package/dist/src/modules/stats/view/TeamStats/TeamStatsView.js +43 -0
  309. package/dist/src/modules/stats/view/TeamStats/index.js +1 -0
  310. package/dist/src/modules/stats/view/Teams/StatsCarousel.d.ts +2 -2
  311. package/dist/src/modules/stats/view/Teams/StatsCarousel.js +83 -0
  312. package/dist/src/modules/stats/view/Teams/StatsProgressBar.d.ts +1 -2
  313. package/dist/src/modules/stats/view/Teams/StatsProgressBar.js +19 -0
  314. package/dist/src/modules/stats/view/Teams/Teams.d.ts +53 -7
  315. package/dist/src/modules/stats/view/Teams/Teams.js +43 -0
  316. package/dist/src/modules/stats/view/Teams/index.js +2 -0
  317. package/dist/src/modules/stats/view/WinProbability/WinProbability.d.ts +53 -7
  318. package/dist/src/modules/stats/view/WinProbability/WinProbability.js +28 -0
  319. package/dist/src/modules/stats/view/WinProbability/index.js +2 -0
  320. package/dist/src/modules/stats/view/components/AthletesStatistics/AthletesStatistics.d.ts +53 -7
  321. package/dist/src/modules/stats/view/components/AthletesStatistics/AthletesStatistics.js +89 -0
  322. package/dist/src/modules/stats/view/components/AthletesStatistics/StatisticTable.d.ts +1 -2
  323. package/dist/src/modules/stats/view/components/AthletesStatistics/StatisticTable.js +12 -0
  324. package/dist/src/modules/stats/view/components/AthletesStatistics/index.js +2 -0
  325. package/dist/src/modules/stats/view/index.js +2 -0
  326. package/dist/src/modules/stats/view-model/StatsViewModel.js +966 -0
  327. package/dist/src/sentry.js +31 -0
  328. package/dist/src/services/AnalyticsService/AnalyticsService.d.ts +12 -7
  329. package/dist/src/services/AnalyticsService/AnalyticsService.js +402 -0
  330. package/dist/src/services/AnalyticsService/types.js +1 -0
  331. package/dist/src/services/BetsService.js +122 -0
  332. package/dist/src/services/FantasyService.js +92 -0
  333. package/dist/src/services/GlobalService/GlobalService.d.ts +9 -0
  334. package/dist/src/services/GlobalService/PageService.d.ts +9 -0
  335. package/dist/src/services/GlobalService/index.d.ts +2 -0
  336. package/dist/src/services/GlobalService/mocks.d.ts +2 -0
  337. package/dist/src/services/GlobalService/types.d.ts +11 -0
  338. package/dist/src/services/InsightsService/InsightsPayloadBuilder.d.ts +1 -2
  339. package/dist/src/services/InsightsService/InsightsPayloadBuilder.js +386 -0
  340. package/dist/src/services/InsightsService/InsightsService.js +74 -0
  341. package/dist/src/services/NetworkManager/NetworkManager.js +457 -0
  342. package/dist/src/services/NetworkManager/NetworkManagerFactory.js +101 -0
  343. package/dist/src/services/NetworkManager/errors.js +45 -0
  344. package/dist/src/services/NetworkManager/types.js +10 -0
  345. package/dist/src/services/PageService/PageService.d.ts +9 -0
  346. package/dist/src/services/PageService/PageService.js +39 -0
  347. package/dist/src/services/PageService/index.d.ts +2 -0
  348. package/dist/src/services/PageService/index.js +2 -0
  349. package/dist/src/services/PageService/mocks.d.ts +2 -0
  350. package/dist/src/services/PageService/mocks.js +104 -0
  351. package/dist/src/services/PageService/types.d.ts +76 -0
  352. package/dist/src/services/PageService/types.js +1 -0
  353. package/dist/src/services/ShopService.js +46 -0
  354. package/dist/src/services/StaticService/PageService.d.ts +9 -0
  355. package/dist/src/services/StaticService/StaticService.d.ts +3 -1
  356. package/dist/src/services/StaticService/StaticService.js +59 -0
  357. package/dist/src/services/StaticService/index.js +2 -0
  358. package/dist/src/services/StaticService/mocks.js +104 -0
  359. package/dist/src/services/StaticService/types.js +1 -0
  360. package/dist/src/services/StatsService.js +136 -0
  361. package/dist/src/services/ThemeManager/constants.js +47 -0
  362. package/dist/src/services/UserSettingsManager.js +155 -0
  363. package/dist/src/test-polyfills.js +15 -0
  364. package/dist/src/types/OverlayTypes.js +4 -0
  365. package/dist/src/view-models/MaestroEventViewModel.d.ts +0 -2
  366. package/dist/src/view-models/MaestroEventViewModel.js +280 -0
  367. package/dist/src/view-models/OverlayViewModel.js +222 -0
  368. package/dist/src/view-models/PanelManagerViewModel.js +212 -0
  369. package/dist/src/view-models/ViewModel.js +32 -0
  370. package/package.json +13 -9
@@ -0,0 +1,213 @@
1
+ /**
2
+ * Manages caching using localStorage with support for TTL, size limits, and versioning.
3
+ * This class implements the ICacheManager interface and provides methods for setting, getting,
4
+ * and clearing cache entries.
5
+ */
6
+ export default class LocalStorageCacheManager {
7
+ /**
8
+ * Creates a new LocalStorageCacheManager instance.
9
+ * @param cacheDuration - The time-to-live (TTL) for cache entries in milliseconds.
10
+ * @param maxSize - The maximum size of the cache in bytes.
11
+ * @param version - The version of the cache. Used to invalidate cache entries when the version changes.
12
+ */
13
+ constructor(cacheDuration = 3600000, maxSize = 5 * 1024 * 1024, version = '1.0') {
14
+ Object.defineProperty(this, "prefix", {
15
+ enumerable: true,
16
+ configurable: true,
17
+ writable: true,
18
+ value: 'maestro-cache-'
19
+ });
20
+ Object.defineProperty(this, "cacheDuration", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: void 0
25
+ });
26
+ Object.defineProperty(this, "maxSize", {
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true,
30
+ value: void 0
31
+ });
32
+ Object.defineProperty(this, "version", {
33
+ enumerable: true,
34
+ configurable: true,
35
+ writable: true,
36
+ value: void 0
37
+ });
38
+ Object.defineProperty(this, "accessLog", {
39
+ enumerable: true,
40
+ configurable: true,
41
+ writable: true,
42
+ value: void 0
43
+ });
44
+ this.cacheDuration = cacheDuration;
45
+ this.maxSize = maxSize;
46
+ this.version = version;
47
+ this.accessLog = new Map();
48
+ }
49
+ /**
50
+ * Produces a cache key by combining the prefix, version, and the provided key.
51
+ * @param key - The key to be used in the cache.
52
+ * @returns The generated cache key.
53
+ */
54
+ produceCacheKey(key) {
55
+ return `${this.prefix}${this.version}:${key}`;
56
+ }
57
+ /**
58
+ * Calculates the current size of the cache in bytes.
59
+ * @returns The total size of the cache in bytes.
60
+ */
61
+ getCurrentSize() {
62
+ let totalSize = 0;
63
+ for (let i = 0; i < localStorage.length; i++) {
64
+ const key = localStorage.key(i);
65
+ if (key?.startsWith(this.prefix)) {
66
+ const value = localStorage.getItem(key);
67
+ if (value) {
68
+ totalSize += key.length + value.length;
69
+ }
70
+ }
71
+ }
72
+ return totalSize;
73
+ }
74
+ /**
75
+ * Cleans up old cache entries based on their TTL.
76
+ */
77
+ cleanupOldEntries() {
78
+ const now = Date.now();
79
+ // Collect keys to remove first
80
+ const keysToRemove = [];
81
+ for (let i = 0; i < localStorage.length; i++) {
82
+ const key = localStorage.key(i);
83
+ if (key?.startsWith(this.prefix)) {
84
+ const value = localStorage.getItem(key);
85
+ if (value) {
86
+ try {
87
+ const { timestamp } = JSON.parse(value);
88
+ if (now - timestamp > this.cacheDuration) {
89
+ keysToRemove.push(key);
90
+ }
91
+ }
92
+ catch (err) {
93
+ keysToRemove.push(key);
94
+ }
95
+ }
96
+ }
97
+ }
98
+ keysToRemove.forEach((key) => {
99
+ localStorage.removeItem(key);
100
+ // Remove from accessLog
101
+ const logicalKey = key.replace(this.prefix + this.version + ':', '');
102
+ this.accessLog.delete(logicalKey);
103
+ });
104
+ }
105
+ /**
106
+ * Cleans up least recently used cache entries when the cache is full.
107
+ */
108
+ cleanupLRUEntries(newItemSize) {
109
+ // Remove oldest entries until we're under the size limit
110
+ const entries = Array.from(this.accessLog.entries()).sort(([, a], [, b]) => a - b);
111
+ while (this.getCurrentSize() + newItemSize > this.maxSize &&
112
+ entries.length > 0) {
113
+ const [key] = entries.shift();
114
+ localStorage.removeItem(this.produceCacheKey(key));
115
+ this.accessLog.delete(key);
116
+ }
117
+ }
118
+ /**
119
+ * Sets a value in the cache with the specified key.
120
+ * @param key - The key to store the value under.
121
+ * @param data - The value to be stored in the cache.
122
+ */
123
+ setCache(key, data) {
124
+ this.cleanupOldEntries();
125
+ const cacheKey = this.produceCacheKey(key);
126
+ const cacheData = {
127
+ data,
128
+ timestamp: Date.now(),
129
+ };
130
+ const newItemSize = cacheKey.length + JSON.stringify(cacheData).length;
131
+ this.cleanupLRUEntries(newItemSize);
132
+ // After cleanup, check if it fits
133
+ if (this.getCurrentSize() + newItemSize > this.maxSize) {
134
+ // Still doesn't fit, don't add
135
+ return;
136
+ }
137
+ localStorage.setItem(cacheKey, JSON.stringify(cacheData));
138
+ this.accessLog.set(key, Date.now());
139
+ }
140
+ /**
141
+ * Retrieves a value from the cache by its key.
142
+ * @param key - The key to retrieve the value for.
143
+ * @returns The cached value, or null if the key is not found or the entry has expired.
144
+ */
145
+ getCache(key) {
146
+ this.cleanupOldEntries();
147
+ const cacheKey = this.produceCacheKey(key);
148
+ const cachedData = localStorage.getItem(cacheKey);
149
+ if (!cachedData) {
150
+ return null;
151
+ }
152
+ try {
153
+ const { data, timestamp } = JSON.parse(cachedData);
154
+ const now = Date.now();
155
+ if (now - timestamp > this.cacheDuration) {
156
+ localStorage.removeItem(cacheKey);
157
+ this.accessLog.delete(key);
158
+ return null;
159
+ }
160
+ // Update last access time
161
+ this.accessLog.set(key, now);
162
+ return data;
163
+ }
164
+ catch (err) {
165
+ localStorage.removeItem(cacheKey);
166
+ this.accessLog.delete(key);
167
+ return null;
168
+ }
169
+ }
170
+ /**
171
+ * Clears a specific cache entry by its key.
172
+ * @param key - The key of the cache entry to clear.
173
+ */
174
+ clearCache(key) {
175
+ const cacheKey = this.produceCacheKey(key);
176
+ localStorage.removeItem(cacheKey);
177
+ this.accessLog.delete(key);
178
+ }
179
+ /**
180
+ * Clears all cache entries that match the specified pattern.
181
+ * @param pattern - The pattern to match against cache keys.
182
+ */
183
+ clearCacheByPattern(pattern) {
184
+ // Collect all matching keys first
185
+ const keysToRemove = [];
186
+ for (let i = 0; i < localStorage.length; i++) {
187
+ const key = localStorage.key(i);
188
+ if (key?.startsWith(this.prefix) && key.includes(pattern)) {
189
+ keysToRemove.push(key);
190
+ }
191
+ }
192
+ keysToRemove.forEach((key) => {
193
+ localStorage.removeItem(key);
194
+ // Remove from accessLog
195
+ const logicalKey = key.replace(this.prefix + this.version + ':', '');
196
+ this.accessLog.delete(logicalKey);
197
+ });
198
+ }
199
+ /**
200
+ * Clears all cache entries.
201
+ */
202
+ clearAllCache() {
203
+ const keysToRemove = [];
204
+ for (let i = 0; i < localStorage.length; i++) {
205
+ const key = localStorage.key(i);
206
+ if (key?.startsWith(this.prefix)) {
207
+ keysToRemove.push(key);
208
+ }
209
+ }
210
+ keysToRemove.forEach((key) => localStorage.removeItem(key));
211
+ this.accessLog.clear();
212
+ }
213
+ }
@@ -0,0 +1,65 @@
1
+ import React from 'react';
2
+ import ReactDOM from 'react-dom';
3
+ class ReactRenderer {
4
+ constructor() {
5
+ Object.defineProperty(this, "renderersMap", {
6
+ enumerable: true,
7
+ configurable: true,
8
+ writable: true,
9
+ value: new Map()
10
+ });
11
+ }
12
+ /**
13
+ * Renders the panel manager
14
+ * @param id The element ID to render in
15
+ * @param options Options for rendering including height and width
16
+ */
17
+ async renderPanel(id) {
18
+ // Check if there's already a renderer for this ID and clean it up first
19
+ if (this.renderersMap.has(id)) {
20
+ const existingRenderer = this.renderersMap.get(id);
21
+ existingRenderer.unmount();
22
+ this.renderersMap.delete(id);
23
+ }
24
+ const renderer = await this.getRenderer(id);
25
+ const App = require('../components/core/App').default;
26
+ const PanelManager = require('../components/core/PanelManager').default;
27
+ renderer.render(React.createElement(App, null,
28
+ React.createElement(PanelManager, null)));
29
+ return () => {
30
+ // Only unmount if this renderer is still in the map (hasn't been replaced)
31
+ if (this.renderersMap.has(id) && this.renderersMap.get(id) === renderer) {
32
+ renderer.unmount();
33
+ this.renderersMap.delete(id);
34
+ }
35
+ };
36
+ }
37
+ /**
38
+ * @description Get the render function and renderer for the MaestroWebSDK. Useful to configure the renderer and fonts before rendering the component.
39
+ * @param {string} id - The id of the element to render the component in.
40
+ * @param {{ height: number; width: number }} options - The height and width of the component.
41
+ */
42
+ async getRenderer(id) {
43
+ if (this.renderersMap.has(id)) {
44
+ return this.renderersMap.get(id);
45
+ }
46
+ const el = document.getElementById(id);
47
+ if (!el) {
48
+ throw new Error(`Element with id ${id} not found`);
49
+ }
50
+ const renderer = {
51
+ render: (children) => {
52
+ ReactDOM.render(children, el);
53
+ },
54
+ unmount: () => {
55
+ const el = document.getElementById(id);
56
+ if (el) {
57
+ ReactDOM.unmountComponentAtNode(el);
58
+ }
59
+ },
60
+ };
61
+ this.renderersMap.set(id, renderer);
62
+ return renderer;
63
+ }
64
+ }
65
+ export default ReactRenderer;
@@ -0,0 +1,187 @@
1
+ /**
2
+ * A mock implementation of the INetworkClient interface for testing
3
+ * and development purposes.
4
+ */
5
+ class MockNetworkClient {
6
+ /**
7
+ * Constructor for MockNetworkClient
8
+ *
9
+ * @param mockResponses - Optional initial mock responses mapping
10
+ * @param mockErrors - Optional initial mock errors mapping
11
+ * @param defaultResponse - Default response for unmocked endpoints
12
+ * @param delay - Simulated network delay in milliseconds
13
+ */
14
+ constructor({ mockResponses = {}, mockErrors = {}, defaultResponse = { success: true }, delay = 0, } = {}) {
15
+ Object.defineProperty(this, "mockResponses", {
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true,
19
+ value: new Map()
20
+ });
21
+ Object.defineProperty(this, "mockErrors", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: new Map()
26
+ });
27
+ Object.defineProperty(this, "defaultResponse", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: { success: true }
32
+ });
33
+ Object.defineProperty(this, "defaultError", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: null
38
+ });
39
+ Object.defineProperty(this, "latestRequest", {
40
+ enumerable: true,
41
+ configurable: true,
42
+ writable: true,
43
+ value: null
44
+ });
45
+ Object.defineProperty(this, "delay", {
46
+ enumerable: true,
47
+ configurable: true,
48
+ writable: true,
49
+ value: 0
50
+ });
51
+ // Convert object to Map
52
+ Object.entries(mockResponses).forEach(([key, value]) => {
53
+ this.mockResponses.set(key, value);
54
+ });
55
+ Object.entries(mockErrors).forEach(([key, value]) => {
56
+ this.mockErrors.set(key, value);
57
+ });
58
+ this.defaultResponse = defaultResponse;
59
+ this.delay = delay;
60
+ }
61
+ /**
62
+ * Get the latest request made to this mock client
63
+ */
64
+ getLatestRequest() {
65
+ return this.latestRequest;
66
+ }
67
+ /**
68
+ * Set a mock response for a specific endpoint
69
+ *
70
+ * @param endpoint - The API endpoint
71
+ * @param response - The mock response data
72
+ */
73
+ setMockResponse(endpoint, response) {
74
+ this.mockResponses.set(endpoint, response);
75
+ }
76
+ /**
77
+ * Set a mock error for a specific endpoint
78
+ *
79
+ * @param endpoint - The API endpoint
80
+ * @param error - The error to throw
81
+ */
82
+ setMockError(endpoint, error) {
83
+ this.mockErrors.set(endpoint, error);
84
+ }
85
+ /**
86
+ * Set a default mock response for all unmocked endpoints
87
+ *
88
+ * @param response - The default response data
89
+ */
90
+ setDefaultResponse(response) {
91
+ this.defaultResponse = response;
92
+ }
93
+ /**
94
+ * Set a default error for all endpoints not configured with specific errors
95
+ *
96
+ * @param error - The default error
97
+ */
98
+ setDefaultError(error) {
99
+ this.defaultError = error;
100
+ }
101
+ /**
102
+ * Set the simulated network delay
103
+ *
104
+ * @param delayMs - Delay in milliseconds
105
+ */
106
+ setDelay(delayMs) {
107
+ this.delay = delayMs;
108
+ }
109
+ /**
110
+ * Clear all mock responses and errors
111
+ */
112
+ reset() {
113
+ this.mockResponses.clear();
114
+ this.mockErrors.clear();
115
+ this.defaultResponse = { success: true };
116
+ this.defaultError = null;
117
+ this.latestRequest = null;
118
+ }
119
+ /**
120
+ * Helper method to handle the common response/error/delay logic
121
+ */
122
+ async handleRequest(method, endpoint, data, params, headers) {
123
+ this.latestRequest = { method, endpoint, data, params, headers };
124
+ // Apply delay if configured
125
+ if (this.delay > 0) {
126
+ await new Promise((resolve) => setTimeout(resolve, this.delay));
127
+ }
128
+ // Check if there's a specific error for this endpoint
129
+ if (this.mockErrors.has(endpoint)) {
130
+ throw this.mockErrors.get(endpoint);
131
+ }
132
+ // Check if there's a default error
133
+ if (this.defaultError) {
134
+ throw this.defaultError;
135
+ }
136
+ // Return mock response for the endpoint, or the default response
137
+ return this.mockResponses.has(endpoint)
138
+ ? this.mockResponses.get(endpoint)
139
+ : this.defaultResponse;
140
+ }
141
+ /**
142
+ * Mock implementation of the get method
143
+ */
144
+ async get(endpoint, params, headers = {}) {
145
+ return this.handleRequest('GET', endpoint, undefined, params, headers);
146
+ }
147
+ /**
148
+ * Mock implementation of the getWithHeaders method
149
+ */
150
+ async getWithHeaders(endpoint, params, headers = {}) {
151
+ const data = await this.handleRequest('GET', endpoint, undefined, params, headers);
152
+ return {
153
+ data,
154
+ headers: {
155
+ 'content-type': 'application/json',
156
+ 'x-mock-header': 'mock-value',
157
+ },
158
+ };
159
+ }
160
+ /**
161
+ * Mock implementation of the post method
162
+ */
163
+ async post(endpoint, data, params, headers = {}) {
164
+ return this.handleRequest('POST', endpoint, data, params, headers);
165
+ }
166
+ /**
167
+ * Mock implementation of the postWithHeaders method
168
+ */
169
+ async postWithHeaders(endpoint, data, params, headers = {}) {
170
+ const responseData = await this.handleRequest('POST', endpoint, data, params, headers);
171
+ return {
172
+ data: responseData,
173
+ headers: {
174
+ 'content-type': 'application/json',
175
+ 'x-mock-header': 'mock-value',
176
+ },
177
+ };
178
+ }
179
+ /**
180
+ * Mock implementation of setAuthentication
181
+ */
182
+ setAuthentication(token, apiKey) {
183
+ // No-op in mock implementation
184
+ console.log('setAuthentication called with token:', token, 'and apiKey:', apiKey);
185
+ }
186
+ }
187
+ export default MockNetworkClient;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,4 @@
1
- type UnmountFn = () => void;
1
+ export type UnmountFn = () => void;
2
2
  export interface IRenderer {
3
3
  renderPanel(id: string): Promise<UnmountFn>;
4
4
  }
5
- export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ export type { WithFocusableProps, WithFocusableState } from '../withFocusable';
3
+ /**
4
+ * Mock implementation of withFocusable HOC for testing
5
+ * Returns the unwrapped component with props passed through
6
+ */
7
+ export declare const withFocusable: () => (Component: React.ComponentType<any>) => (props: any) => React.JSX.Element;
8
+ export default withFocusable;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ /**
3
+ * Mock implementation of withFocusable HOC for testing
4
+ * Returns the unwrapped component with props passed through
5
+ */
6
+ export const withFocusable = () => (Component) => (props) => React.createElement(Component, { ...props });
7
+ export default withFocusable;
@@ -0,0 +1,3 @@
1
+ import withFocusable from './withFocusable';
2
+ import SpatialNavigation from './spatialNavigation';
3
+ export { withFocusable, SpatialNavigation };
@@ -0,0 +1,30 @@
1
+ const ELEMENT_NODE = 1;
2
+ const getRect = (node) => {
3
+ let { offsetParent } = node;
4
+ const height = node.offsetHeight;
5
+ const width = node.offsetWidth;
6
+ let left = node.offsetLeft;
7
+ let top = node.offsetTop;
8
+ while (offsetParent && offsetParent.nodeType === ELEMENT_NODE) {
9
+ left += offsetParent.offsetLeft - offsetParent.scrollLeft;
10
+ top += offsetParent.offsetTop - offsetParent.scrollTop;
11
+ ({ offsetParent } = offsetParent);
12
+ }
13
+ return {
14
+ height,
15
+ left,
16
+ top,
17
+ width,
18
+ };
19
+ };
20
+ const measureLayout = (node, callback) => {
21
+ const relativeNode = node && node.parentNode;
22
+ if (relativeNode) {
23
+ const relativeRect = getRect(relativeNode);
24
+ const { height, left, top, width } = getRect(node);
25
+ const x = left - relativeRect.left;
26
+ const y = top - relativeRect.top;
27
+ callback(x, y, width, height, left, top);
28
+ }
29
+ };
30
+ export default measureLayout;