@maestro_io/maestro-web-sdk 5.2.1 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (688) hide show
  1. package/README.md +25 -0
  2. package/dist/index.d.ts +7 -6
  3. package/dist/maestro-web-sdk.esm.js +1 -10
  4. package/dist/maestro-web-sdk.esm.js.map +1 -1
  5. package/dist/maestro-web-sdk.umd.js +1 -10
  6. package/dist/maestro-web-sdk.umd.js.map +1 -1
  7. package/package.json +32 -33
  8. package/dist/1.maestro-web-sdk.esm.js +0 -2
  9. package/dist/1.maestro-web-sdk.esm.js.map +0 -1
  10. package/dist/10.maestro-web-sdk.esm.js +0 -2
  11. package/dist/10.maestro-web-sdk.esm.js.map +0 -1
  12. package/dist/11.maestro-web-sdk.esm.js +0 -2
  13. package/dist/11.maestro-web-sdk.esm.js.map +0 -1
  14. package/dist/12.maestro-web-sdk.esm.js +0 -2
  15. package/dist/12.maestro-web-sdk.esm.js.map +0 -1
  16. package/dist/13.maestro-web-sdk.esm.js +0 -2
  17. package/dist/13.maestro-web-sdk.esm.js.map +0 -1
  18. package/dist/14.maestro-web-sdk.esm.js +0 -2
  19. package/dist/14.maestro-web-sdk.esm.js.map +0 -1
  20. package/dist/15.maestro-web-sdk.esm.js +0 -2
  21. package/dist/15.maestro-web-sdk.esm.js.map +0 -1
  22. package/dist/16.maestro-web-sdk.esm.js +0 -2
  23. package/dist/16.maestro-web-sdk.esm.js.map +0 -1
  24. package/dist/17.maestro-web-sdk.esm.js +0 -2
  25. package/dist/17.maestro-web-sdk.esm.js.map +0 -1
  26. package/dist/18.maestro-web-sdk.esm.js +0 -2
  27. package/dist/18.maestro-web-sdk.esm.js.map +0 -1
  28. package/dist/19.maestro-web-sdk.esm.js +0 -2
  29. package/dist/19.maestro-web-sdk.esm.js.map +0 -1
  30. package/dist/2.maestro-web-sdk.esm.js +0 -2
  31. package/dist/2.maestro-web-sdk.esm.js.map +0 -1
  32. package/dist/20.maestro-web-sdk.esm.js +0 -2
  33. package/dist/20.maestro-web-sdk.esm.js.map +0 -1
  34. package/dist/21.maestro-web-sdk.esm.js +0 -2
  35. package/dist/21.maestro-web-sdk.esm.js.map +0 -1
  36. package/dist/22.maestro-web-sdk.esm.js +0 -2
  37. package/dist/22.maestro-web-sdk.esm.js.map +0 -1
  38. package/dist/23.maestro-web-sdk.esm.js +0 -2
  39. package/dist/23.maestro-web-sdk.esm.js.map +0 -1
  40. package/dist/24.maestro-web-sdk.esm.js +0 -2
  41. package/dist/24.maestro-web-sdk.esm.js.map +0 -1
  42. package/dist/25.maestro-web-sdk.esm.js +0 -2
  43. package/dist/25.maestro-web-sdk.esm.js.map +0 -1
  44. package/dist/26.maestro-web-sdk.esm.js +0 -2
  45. package/dist/26.maestro-web-sdk.esm.js.map +0 -1
  46. package/dist/27.maestro-web-sdk.esm.js +0 -2
  47. package/dist/27.maestro-web-sdk.esm.js.map +0 -1
  48. package/dist/28.maestro-web-sdk.esm.js +0 -2
  49. package/dist/28.maestro-web-sdk.esm.js.map +0 -1
  50. package/dist/29.maestro-web-sdk.esm.js +0 -2
  51. package/dist/29.maestro-web-sdk.esm.js.map +0 -1
  52. package/dist/3.maestro-web-sdk.esm.js +0 -2
  53. package/dist/3.maestro-web-sdk.esm.js.map +0 -1
  54. package/dist/30.maestro-web-sdk.esm.js +0 -2
  55. package/dist/30.maestro-web-sdk.esm.js.map +0 -1
  56. package/dist/31.maestro-web-sdk.esm.js +0 -2
  57. package/dist/31.maestro-web-sdk.esm.js.map +0 -1
  58. package/dist/32.maestro-web-sdk.esm.js +0 -2
  59. package/dist/32.maestro-web-sdk.esm.js.map +0 -1
  60. package/dist/33.maestro-web-sdk.esm.js +0 -2
  61. package/dist/33.maestro-web-sdk.esm.js.map +0 -1
  62. package/dist/34.maestro-web-sdk.esm.js +0 -2
  63. package/dist/34.maestro-web-sdk.esm.js.map +0 -1
  64. package/dist/35.maestro-web-sdk.esm.js +0 -2
  65. package/dist/35.maestro-web-sdk.esm.js.map +0 -1
  66. package/dist/36.maestro-web-sdk.esm.js +0 -2
  67. package/dist/36.maestro-web-sdk.esm.js.map +0 -1
  68. package/dist/37.maestro-web-sdk.esm.js +0 -2
  69. package/dist/37.maestro-web-sdk.esm.js.map +0 -1
  70. package/dist/38.maestro-web-sdk.esm.js +0 -2
  71. package/dist/38.maestro-web-sdk.esm.js.map +0 -1
  72. package/dist/39.maestro-web-sdk.esm.js +0 -2
  73. package/dist/39.maestro-web-sdk.esm.js.map +0 -1
  74. package/dist/4.maestro-web-sdk.esm.js +0 -2
  75. package/dist/4.maestro-web-sdk.esm.js.map +0 -1
  76. package/dist/40.maestro-web-sdk.esm.js +0 -2
  77. package/dist/40.maestro-web-sdk.esm.js.map +0 -1
  78. package/dist/5.maestro-web-sdk.esm.js +0 -2
  79. package/dist/5.maestro-web-sdk.esm.js.map +0 -1
  80. package/dist/6.maestro-web-sdk.esm.js +0 -2
  81. package/dist/6.maestro-web-sdk.esm.js.map +0 -1
  82. package/dist/7.maestro-web-sdk.esm.js +0 -2
  83. package/dist/7.maestro-web-sdk.esm.js.map +0 -1
  84. package/dist/8.maestro-web-sdk.esm.js +0 -2
  85. package/dist/8.maestro-web-sdk.esm.js.map +0 -1
  86. package/dist/9.maestro-web-sdk.esm.js +0 -2
  87. package/dist/9.maestro-web-sdk.esm.js.map +0 -1
  88. package/dist/package.json +0 -94
  89. package/dist/src/components/atoms/BaseButton/BaseButton.d.ts +0 -7
  90. package/dist/src/components/atoms/BaseButton/BaseButton.js +0 -11
  91. package/dist/src/components/atoms/BaseButton/index.d.ts +0 -2
  92. package/dist/src/components/atoms/BaseButton/index.js +0 -2
  93. package/dist/src/components/atoms/Image/index.d.ts +0 -13
  94. package/dist/src/components/atoms/Image/index.js +0 -34
  95. package/dist/src/components/atoms/Rive/index.d.ts +0 -221
  96. package/dist/src/components/atoms/Rive/index.js +0 -53
  97. package/dist/src/components/atoms/SvgIcon/AddIcon.d.ts +0 -3
  98. package/dist/src/components/atoms/SvgIcon/AddIcon.js +0 -6
  99. package/dist/src/components/atoms/SvgIcon/BetGeneralIcon.d.ts +0 -3
  100. package/dist/src/components/atoms/SvgIcon/BetGeneralIcon.js +0 -9
  101. package/dist/src/components/atoms/SvgIcon/BetsIcon.d.ts +0 -3
  102. package/dist/src/components/atoms/SvgIcon/BetsIcon.js +0 -8
  103. package/dist/src/components/atoms/SvgIcon/BetsWarningIcon.d.ts +0 -7
  104. package/dist/src/components/atoms/SvgIcon/BetsWarningIcon.js +0 -11
  105. package/dist/src/components/atoms/SvgIcon/BuilderIcon.d.ts +0 -3
  106. package/dist/src/components/atoms/SvgIcon/BuilderIcon.js +0 -8
  107. package/dist/src/components/atoms/SvgIcon/ChatIcon.d.ts +0 -3
  108. package/dist/src/components/atoms/SvgIcon/ChatIcon.js +0 -6
  109. package/dist/src/components/atoms/SvgIcon/CheckmarkIcon.d.ts +0 -3
  110. package/dist/src/components/atoms/SvgIcon/CheckmarkIcon.js +0 -6
  111. package/dist/src/components/atoms/SvgIcon/CollapseIcon.d.ts +0 -3
  112. package/dist/src/components/atoms/SvgIcon/CollapseIcon.js +0 -6
  113. package/dist/src/components/atoms/SvgIcon/ExpandIcon.d.ts +0 -3
  114. package/dist/src/components/atoms/SvgIcon/ExpandIcon.js +0 -6
  115. package/dist/src/components/atoms/SvgIcon/FantasyIcon.d.ts +0 -7
  116. package/dist/src/components/atoms/SvgIcon/FantasyIcon.js +0 -15
  117. package/dist/src/components/atoms/SvgIcon/FlameIcon.d.ts +0 -7
  118. package/dist/src/components/atoms/SvgIcon/FlameIcon.js +0 -11
  119. package/dist/src/components/atoms/SvgIcon/FoxKeyPlaysIcon.d.ts +0 -3
  120. package/dist/src/components/atoms/SvgIcon/FoxKeyPlaysIcon.js +0 -7
  121. package/dist/src/components/atoms/SvgIcon/FoxMultiViewIcon.d.ts +0 -3
  122. package/dist/src/components/atoms/SvgIcon/FoxMultiViewIcon.js +0 -10
  123. package/dist/src/components/atoms/SvgIcon/FoxStatsIcon.d.ts +0 -3
  124. package/dist/src/components/atoms/SvgIcon/FoxStatsIcon.js +0 -7
  125. package/dist/src/components/atoms/SvgIcon/HelloWorldIcon.d.ts +0 -3
  126. package/dist/src/components/atoms/SvgIcon/HelloWorldIcon.js +0 -6
  127. package/dist/src/components/atoms/SvgIcon/Icon.d.ts +0 -15
  128. package/dist/src/components/atoms/SvgIcon/Icon.js +0 -70
  129. package/dist/src/components/atoms/SvgIcon/KeyPlaysIcon.d.ts +0 -6
  130. package/dist/src/components/atoms/SvgIcon/KeyPlaysIcon.js +0 -10
  131. package/dist/src/components/atoms/SvgIcon/MobilePhoneIcon.d.ts +0 -7
  132. package/dist/src/components/atoms/SvgIcon/MobilePhoneIcon.js +0 -11
  133. package/dist/src/components/atoms/SvgIcon/PlayIcon.d.ts +0 -6
  134. package/dist/src/components/atoms/SvgIcon/PlayIcon.js +0 -8
  135. package/dist/src/components/atoms/SvgIcon/ShopIcon.d.ts +0 -5
  136. package/dist/src/components/atoms/SvgIcon/ShopIcon.js +0 -7
  137. package/dist/src/components/atoms/SvgIcon/ShopifyIcon.d.ts +0 -3
  138. package/dist/src/components/atoms/SvgIcon/ShopifyIcon.js +0 -6
  139. package/dist/src/components/atoms/SvgIcon/StatsIcon.d.ts +0 -6
  140. package/dist/src/components/atoms/SvgIcon/StatsIcon.js +0 -12
  141. package/dist/src/components/atoms/SvgIcon/TimesIcon.d.ts +0 -3
  142. package/dist/src/components/atoms/SvgIcon/TimesIcon.js +0 -6
  143. package/dist/src/components/atoms/SvgIcon/WarningIcon.d.ts +0 -6
  144. package/dist/src/components/atoms/SvgIcon/WarningIcon.js +0 -8
  145. package/dist/src/components/atoms/SvgIcon/index.d.ts +0 -2
  146. package/dist/src/components/atoms/SvgIcon/index.js +0 -2
  147. package/dist/src/components/core/App/App.d.ts +0 -11
  148. package/dist/src/components/core/App/App.js +0 -35
  149. package/dist/src/components/core/App/index.d.ts +0 -2
  150. package/dist/src/components/core/App/index.js +0 -2
  151. package/dist/src/components/core/PanelManager/PanelManager.d.ts +0 -21
  152. package/dist/src/components/core/PanelManager/PanelManager.js +0 -104
  153. package/dist/src/components/core/PanelManager/index.d.ts +0 -2
  154. package/dist/src/components/core/PanelManager/index.js +0 -2
  155. package/dist/src/components/core/ScrollableContainer/FocusableItem.d.ts +0 -11
  156. package/dist/src/components/core/ScrollableContainer/FocusableItem.js +0 -24
  157. package/dist/src/components/core/ScrollableContainer/ScrollableContainer.d.ts +0 -54
  158. package/dist/src/components/core/ScrollableContainer/ScrollableContainer.js +0 -111
  159. package/dist/src/components/core/ScrollableContainer/index.d.ts +0 -6
  160. package/dist/src/components/core/ScrollableContainer/index.js +0 -5
  161. package/dist/src/components/core/ScrollableContainer/useScrollableContainer.d.ts +0 -14
  162. package/dist/src/components/core/ScrollableContainer/useScrollableContainer.js +0 -22
  163. package/dist/src/components/molecules/ActionButton/ActionButton.d.ts +0 -96
  164. package/dist/src/components/molecules/ActionButton/ActionButton.js +0 -15
  165. package/dist/src/components/molecules/ActionButton/index.d.ts +0 -2
  166. package/dist/src/components/molecules/ActionButton/index.js +0 -2
  167. package/dist/src/components/molecules/HeadshotImage/HeadshotImage.d.ts +0 -16
  168. package/dist/src/components/molecules/HeadshotImage/HeadshotImage.js +0 -50
  169. package/dist/src/components/molecules/HeadshotImage/index.d.ts +0 -2
  170. package/dist/src/components/molecules/HeadshotImage/index.js +0 -2
  171. package/dist/src/components/molecules/NetworkDialog/NetworkDialog.d.ts +0 -11
  172. package/dist/src/components/molecules/NetworkDialog/NetworkDialog.js +0 -34
  173. package/dist/src/components/molecules/NetworkDialog/index.d.ts +0 -2
  174. package/dist/src/components/molecules/NetworkDialog/index.js +0 -2
  175. package/dist/src/components/molecules/NetworkError/NetworkError.d.ts +0 -104
  176. package/dist/src/components/molecules/NetworkError/NetworkError.js +0 -26
  177. package/dist/src/components/molecules/NetworkError/index.d.ts +0 -2
  178. package/dist/src/components/molecules/NetworkError/index.js +0 -2
  179. package/dist/src/components/molecules/PanelNavButton/PanelNavButton.d.ts +0 -107
  180. package/dist/src/components/molecules/PanelNavButton/PanelNavButton.js +0 -36
  181. package/dist/src/components/molecules/PanelNavButton/index.d.ts +0 -2
  182. package/dist/src/components/molecules/PanelNavButton/index.js +0 -2
  183. package/dist/src/components/molecules/SegmentButton/SegmentButton.d.ts +0 -9
  184. package/dist/src/components/molecules/SegmentButton/SegmentButton.js +0 -10
  185. package/dist/src/components/molecules/SegmentButton/index.d.ts +0 -2
  186. package/dist/src/components/molecules/SegmentButton/index.js +0 -2
  187. package/dist/src/components/molecules/TabLoadError/TabLoadError.d.ts +0 -96
  188. package/dist/src/components/molecules/TabLoadError/TabLoadError.js +0 -14
  189. package/dist/src/components/molecules/TabLoadError/index.d.ts +0 -2
  190. package/dist/src/components/molecules/TabLoadError/index.js +0 -2
  191. package/dist/src/components/molecules/WatchButton/WatchButton.d.ts +0 -10
  192. package/dist/src/components/molecules/WatchButton/WatchButton.js +0 -15
  193. package/dist/src/components/molecules/WatchButton/index.d.ts +0 -2
  194. package/dist/src/components/molecules/WatchButton/index.js +0 -2
  195. package/dist/src/components/organisms/PanelNavigation/PanelNavigation.d.ts +0 -17
  196. package/dist/src/components/organisms/PanelNavigation/PanelNavigation.js +0 -64
  197. package/dist/src/components/organisms/PanelNavigation/index.d.ts +0 -2
  198. package/dist/src/components/organisms/PanelNavigation/index.js +0 -2
  199. package/dist/src/components/organisms/SegmentController/SegmentController.d.ts +0 -12
  200. package/dist/src/components/organisms/SegmentController/SegmentController.js +0 -35
  201. package/dist/src/components/organisms/SegmentController/index.d.ts +0 -3
  202. package/dist/src/components/organisms/SegmentController/index.js +0 -2
  203. package/dist/src/development/MaestroEventDelegate.d.ts +0 -27
  204. package/dist/src/development/MaestroEventDelegate.js +0 -110
  205. package/dist/src/development/TimeSeek.d.ts +0 -22
  206. package/dist/src/development/TimeSeek.js +0 -218
  207. package/dist/src/development/development.d.ts +0 -1
  208. package/dist/src/development/development.js +0 -39
  209. package/dist/src/external/AxiosNetworkClient.d.ts +0 -28
  210. package/dist/src/external/AxiosNetworkClient.js +0 -110
  211. package/dist/src/external/LocalStorageCacheManager.d.ts +0 -65
  212. package/dist/src/external/LocalStorageCacheManager.js +0 -213
  213. package/dist/src/external/ReactRenderer.d.ts +0 -17
  214. package/dist/src/external/ReactRenderer.js +0 -66
  215. package/dist/src/external/mocks/MockExternalNetworkClient.d.ts +0 -104
  216. package/dist/src/external/mocks/MockExternalNetworkClient.js +0 -187
  217. package/dist/src/external/ports/cacheManager.d.ts +0 -17
  218. package/dist/src/external/ports/cacheManager.js +0 -1
  219. package/dist/src/external/ports/networkClient.d.ts +0 -19
  220. package/dist/src/external/ports/networkClient.js +0 -1
  221. package/dist/src/external/ports/renderer.d.ts +0 -4
  222. package/dist/src/external/ports/renderer.js +0 -1
  223. package/dist/src/external/spatial-navigation/__mocks__/withFocusable.d.ts +0 -8
  224. package/dist/src/external/spatial-navigation/__mocks__/withFocusable.js +0 -7
  225. package/dist/src/external/spatial-navigation/index.d.ts +0 -4
  226. package/dist/src/external/spatial-navigation/index.js +0 -3
  227. package/dist/src/external/spatial-navigation/measureLayout.d.ts +0 -2
  228. package/dist/src/external/spatial-navigation/measureLayout.js +0 -30
  229. package/dist/src/external/spatial-navigation/spatialNavigation.d.ts +0 -160
  230. package/dist/src/external/spatial-navigation/spatialNavigation.js +0 -944
  231. package/dist/src/external/spatial-navigation/utils.d.ts +0 -22
  232. package/dist/src/external/spatial-navigation/utils.js +0 -6
  233. package/dist/src/external/spatial-navigation/visualDebugger.d.ts +0 -17
  234. package/dist/src/external/spatial-navigation/visualDebugger.js +0 -76
  235. package/dist/src/external/spatial-navigation/withFocusable.d.ts +0 -131
  236. package/dist/src/external/spatial-navigation/withFocusable.js +0 -254
  237. package/dist/src/helpers/Observable.d.ts +0 -12
  238. package/dist/src/helpers/Observable.js +0 -37
  239. package/dist/src/helpers/site.d.ts +0 -1
  240. package/dist/src/helpers/site.js +0 -6
  241. package/dist/src/helpers/siteConfig.d.ts +0 -1
  242. package/dist/src/helpers/siteConfig.js +0 -5
  243. package/dist/src/helpers/strings.d.ts +0 -2
  244. package/dist/src/helpers/strings.js +0 -14
  245. package/dist/src/helpers/url.d.ts +0 -1
  246. package/dist/src/helpers/url.js +0 -12
  247. package/dist/src/hooks/useMaxHeightToBottom.d.ts +0 -11
  248. package/dist/src/hooks/useMaxHeightToBottom.js +0 -48
  249. package/dist/src/index.d.ts +0 -53
  250. package/dist/src/index.js +0 -197
  251. package/dist/src/interfaces/IMaestroEvent.d.ts +0 -108
  252. package/dist/src/interfaces/IMaestroEvent.js +0 -1
  253. package/dist/src/interfaces/IMaestroEventDelegate.d.ts +0 -81
  254. package/dist/src/interfaces/IMaestroEventDelegate.js +0 -1
  255. package/dist/src/interfaces/IMaestroManager.d.ts +0 -81
  256. package/dist/src/interfaces/IMaestroManager.js +0 -1
  257. package/dist/src/interfaces/IUserSettings.d.ts +0 -44
  258. package/dist/src/interfaces/IUserSettings.js +0 -20
  259. package/dist/src/models/IModel.d.ts +0 -7
  260. package/dist/src/models/IModel.js +0 -1
  261. package/dist/src/models/IPanel.d.ts +0 -19
  262. package/dist/src/models/IPanel.js +0 -12
  263. package/dist/src/models/ITheme.d.ts +0 -77
  264. package/dist/src/models/ITheme.js +0 -20
  265. package/dist/src/modules/espn/bets/interfaces/IBets.d.ts +0 -192
  266. package/dist/src/modules/espn/bets/interfaces/IBets.js +0 -1
  267. package/dist/src/modules/espn/bets/interfaces/IBetsViewModel.d.ts +0 -5
  268. package/dist/src/modules/espn/bets/interfaces/IBetsViewModel.js +0 -1
  269. package/dist/src/modules/espn/bets/mocks.d.ts +0 -2
  270. package/dist/src/modules/espn/bets/mocks.js +0 -573
  271. package/dist/src/modules/espn/bets/services/BetsService.d.ts +0 -81
  272. package/dist/src/modules/espn/bets/services/BetsService.js +0 -123
  273. package/dist/src/modules/espn/bets/types/BetsAnalyticsTypes.d.ts +0 -8
  274. package/dist/src/modules/espn/bets/types/BetsAnalyticsTypes.js +0 -1
  275. package/dist/src/modules/espn/bets/view/BetsView.d.ts +0 -30
  276. package/dist/src/modules/espn/bets/view/BetsView.js +0 -169
  277. package/dist/src/modules/espn/bets/view/HotProps/HotPropsView.d.ts +0 -103
  278. package/dist/src/modules/espn/bets/view/HotProps/HotPropsView.js +0 -133
  279. package/dist/src/modules/espn/bets/view/SixPack/SixPackView.d.ts +0 -9
  280. package/dist/src/modules/espn/bets/view/SixPack/SixPackView.js +0 -77
  281. package/dist/src/modules/espn/bets/view/UserBets/BetResult/BetResult.d.ts +0 -6
  282. package/dist/src/modules/espn/bets/view/UserBets/BetResult/BetResult.js +0 -6
  283. package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCard.d.ts +0 -104
  284. package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCard.js +0 -140
  285. package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCardEvent.d.ts +0 -16
  286. package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCardEvent.js +0 -8
  287. package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCardFooter.d.ts +0 -7
  288. package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCardFooter.js +0 -18
  289. package/dist/src/modules/espn/bets/view/UserBets/Boost/Boost.d.ts +0 -7
  290. package/dist/src/modules/espn/bets/view/UserBets/Boost/Boost.js +0 -6
  291. package/dist/src/modules/espn/bets/view/UserBets/OutcomeBadge/OutcomeBadge.d.ts +0 -6
  292. package/dist/src/modules/espn/bets/view/UserBets/OutcomeBadge/OutcomeBadge.js +0 -9
  293. package/dist/src/modules/espn/bets/view/UserBets/Parlay/Parlay.d.ts +0 -8
  294. package/dist/src/modules/espn/bets/view/UserBets/Parlay/Parlay.js +0 -13
  295. package/dist/src/modules/espn/bets/view/UserBets/Straight/Straight.d.ts +0 -7
  296. package/dist/src/modules/espn/bets/view/UserBets/Straight/Straight.js +0 -6
  297. package/dist/src/modules/espn/bets/view/UserBets/Teaser/Teaser.d.ts +0 -7
  298. package/dist/src/modules/espn/bets/view/UserBets/Teaser/Teaser.js +0 -13
  299. package/dist/src/modules/espn/bets/view/UserBets/UserBetsView.d.ts +0 -25
  300. package/dist/src/modules/espn/bets/view/UserBets/UserBetsView.js +0 -107
  301. package/dist/src/modules/espn/bets/view/components/Bet/Bet.d.ts +0 -10
  302. package/dist/src/modules/espn/bets/view/components/Bet/Bet.js +0 -41
  303. package/dist/src/modules/espn/bets/view/components/BetPill/BetPill.d.ts +0 -6
  304. package/dist/src/modules/espn/bets/view/components/BetPill/BetPill.js +0 -6
  305. package/dist/src/modules/espn/bets/view/components/BetsCard/BetsCard.d.ts +0 -10
  306. package/dist/src/modules/espn/bets/view/components/BetsCard/BetsCard.js +0 -24
  307. package/dist/src/modules/espn/bets/view/components/BetsCard/BetsCardHeader.d.ts +0 -16
  308. package/dist/src/modules/espn/bets/view/components/BetsCard/BetsCardHeader.js +0 -20
  309. package/dist/src/modules/espn/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.d.ts +0 -7
  310. package/dist/src/modules/espn/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.js +0 -31
  311. package/dist/src/modules/espn/bets/view/components/GamblingDisclaimer/index.d.ts +0 -1
  312. package/dist/src/modules/espn/bets/view/components/GamblingDisclaimer/index.js +0 -1
  313. package/dist/src/modules/espn/bets/view/components/LocationWarning/LocationWarning.d.ts +0 -10
  314. package/dist/src/modules/espn/bets/view/components/LocationWarning/LocationWarning.js +0 -16
  315. package/dist/src/modules/espn/bets/view/components/PromoCodeBanner/PromoCodeBanner.d.ts +0 -5
  316. package/dist/src/modules/espn/bets/view/components/PromoCodeBanner/PromoCodeBanner.js +0 -45
  317. package/dist/src/modules/espn/bets/view/components/PromoCodeBanner/index.d.ts +0 -1
  318. package/dist/src/modules/espn/bets/view/components/PromoCodeBanner/index.js +0 -1
  319. package/dist/src/modules/espn/bets/view-model/BetsViewModel.d.ts +0 -218
  320. package/dist/src/modules/espn/bets/view-model/BetsViewModel.js +0 -947
  321. package/dist/src/modules/espn/components/TabLoadError/TabLoadError.d.ts +0 -96
  322. package/dist/src/modules/espn/components/TabLoadError/TabLoadError.js +0 -14
  323. package/dist/src/modules/espn/components/TabLoadError/index.d.ts +0 -2
  324. package/dist/src/modules/espn/components/TabLoadError/index.js +0 -2
  325. package/dist/src/modules/espn/fantasy/components/ExpandedAthleteList/ExpandedAthletesList.d.ts +0 -28
  326. package/dist/src/modules/espn/fantasy/components/ExpandedAthleteList/ExpandedAthletesList.js +0 -107
  327. package/dist/src/modules/espn/fantasy/components/ExpandedAthleteList/index.d.ts +0 -1
  328. package/dist/src/modules/espn/fantasy/components/ExpandedAthleteList/index.js +0 -1
  329. package/dist/src/modules/espn/fantasy/components/LeagueCard/LeagueCard.d.ts +0 -104
  330. package/dist/src/modules/espn/fantasy/components/LeagueCard/LeagueCard.js +0 -20
  331. package/dist/src/modules/espn/fantasy/components/LeagueCard/index.d.ts +0 -2
  332. package/dist/src/modules/espn/fantasy/components/LeagueCard/index.js +0 -2
  333. package/dist/src/modules/espn/fantasy/components/TopPlayerCard/TopPlayerCard.d.ts +0 -101
  334. package/dist/src/modules/espn/fantasy/components/TopPlayerCard/TopPlayerCard.js +0 -29
  335. package/dist/src/modules/espn/fantasy/components/TopPlayerCard/index.d.ts +0 -2
  336. package/dist/src/modules/espn/fantasy/components/TopPlayerCard/index.js +0 -2
  337. package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/TournamentOverflowQR.d.ts +0 -103
  338. package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/TournamentOverflowQR.js +0 -28
  339. package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/index.d.ts +0 -1
  340. package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/index.js +0 -1
  341. package/dist/src/modules/espn/fantasy/mocks.d.ts +0 -7620
  342. package/dist/src/modules/espn/fantasy/mocks.js +0 -3682
  343. package/dist/src/modules/espn/fantasy/services/FantasyService.d.ts +0 -76
  344. package/dist/src/modules/espn/fantasy/services/FantasyService.js +0 -127
  345. package/dist/src/modules/espn/fantasy/types.d.ts +0 -294
  346. package/dist/src/modules/espn/fantasy/types.js +0 -9
  347. package/dist/src/modules/espn/fantasy/view/ActiveAthletesMarquee/ActiveAthletesMarquee.d.ts +0 -21
  348. package/dist/src/modules/espn/fantasy/view/ActiveAthletesMarquee/ActiveAthletesMarquee.js +0 -74
  349. package/dist/src/modules/espn/fantasy/view/ActiveAthletesMarquee/index.d.ts +0 -2
  350. package/dist/src/modules/espn/fantasy/view/ActiveAthletesMarquee/index.js +0 -2
  351. package/dist/src/modules/espn/fantasy/view/FantasyHeaderView.d.ts +0 -8
  352. package/dist/src/modules/espn/fantasy/view/FantasyHeaderView.js +0 -8
  353. package/dist/src/modules/espn/fantasy/view/FantasyItemView.d.ts +0 -8
  354. package/dist/src/modules/espn/fantasy/view/FantasyItemView.js +0 -48
  355. package/dist/src/modules/espn/fantasy/view/FantasyView.d.ts +0 -34
  356. package/dist/src/modules/espn/fantasy/view/FantasyView.js +0 -213
  357. package/dist/src/modules/espn/fantasy/view/InactiveLeague/DraftDateCountdown.d.ts +0 -23
  358. package/dist/src/modules/espn/fantasy/view/InactiveLeague/DraftDateCountdown.js +0 -95
  359. package/dist/src/modules/espn/fantasy/view/InactiveLeague/InactiveLeague.d.ts +0 -100
  360. package/dist/src/modules/espn/fantasy/view/InactiveLeague/InactiveLeague.js +0 -13
  361. package/dist/src/modules/espn/fantasy/view/InactiveLeague/index.d.ts +0 -2
  362. package/dist/src/modules/espn/fantasy/view/InactiveLeague/index.js +0 -2
  363. package/dist/src/modules/espn/fantasy/view/LoginView/LoginView.d.ts +0 -96
  364. package/dist/src/modules/espn/fantasy/view/LoginView/LoginView.js +0 -27
  365. package/dist/src/modules/espn/fantasy/view/LoginView/index.d.ts +0 -2
  366. package/dist/src/modules/espn/fantasy/view/LoginView/index.js +0 -2
  367. package/dist/src/modules/espn/fantasy/view/MatchupPair/DoubleAthleteCard/DoubleAthleteCard.d.ts +0 -97
  368. package/dist/src/modules/espn/fantasy/view/MatchupPair/DoubleAthleteCard/DoubleAthleteCard.js +0 -25
  369. package/dist/src/modules/espn/fantasy/view/MatchupPair/DoubleAthleteCard/index.d.ts +0 -2
  370. package/dist/src/modules/espn/fantasy/view/MatchupPair/DoubleAthleteCard/index.js +0 -2
  371. package/dist/src/modules/espn/fantasy/view/MatchupPair/ExpandedDoubleAthleteCards.d.ts +0 -14
  372. package/dist/src/modules/espn/fantasy/view/MatchupPair/ExpandedDoubleAthleteCards.js +0 -9
  373. package/dist/src/modules/espn/fantasy/view/MatchupPair/MatchupPair.d.ts +0 -102
  374. package/dist/src/modules/espn/fantasy/view/MatchupPair/MatchupPair.js +0 -118
  375. package/dist/src/modules/espn/fantasy/view/MatchupPair/index.d.ts +0 -2
  376. package/dist/src/modules/espn/fantasy/view/MatchupPair/index.js +0 -2
  377. package/dist/src/modules/espn/fantasy/view/MatchupSingle/ExpandedSingleAthleteCards.d.ts +0 -14
  378. package/dist/src/modules/espn/fantasy/view/MatchupSingle/ExpandedSingleAthleteCards.js +0 -9
  379. package/dist/src/modules/espn/fantasy/view/MatchupSingle/MatchupSingle.d.ts +0 -102
  380. package/dist/src/modules/espn/fantasy/view/MatchupSingle/MatchupSingle.js +0 -108
  381. package/dist/src/modules/espn/fantasy/view/MatchupSingle/SingleAthleteCard/SingleAthleteCard.d.ts +0 -97
  382. package/dist/src/modules/espn/fantasy/view/MatchupSingle/SingleAthleteCard/SingleAthleteCard.js +0 -18
  383. package/dist/src/modules/espn/fantasy/view/MatchupSingle/SingleAthleteCard/index.d.ts +0 -2
  384. package/dist/src/modules/espn/fantasy/view/MatchupSingle/SingleAthleteCard/index.js +0 -2
  385. package/dist/src/modules/espn/fantasy/view/MatchupSingle/index.d.ts +0 -2
  386. package/dist/src/modules/espn/fantasy/view/MatchupSingle/index.js +0 -2
  387. package/dist/src/modules/espn/fantasy/view/PromoView/PromoView.d.ts +0 -100
  388. package/dist/src/modules/espn/fantasy/view/PromoView/PromoView.js +0 -12
  389. package/dist/src/modules/espn/fantasy/view/PromoView/index.d.ts +0 -2
  390. package/dist/src/modules/espn/fantasy/view/PromoView/index.js +0 -2
  391. package/dist/src/modules/espn/fantasy/view/TournamentBracketCard/TournamentBracketCard.d.ts +0 -101
  392. package/dist/src/modules/espn/fantasy/view/TournamentBracketCard/TournamentBracketCard.js +0 -37
  393. package/dist/src/modules/espn/fantasy/view/TournamentBracketCard/index.d.ts +0 -2
  394. package/dist/src/modules/espn/fantasy/view/TournamentBracketCard/index.js +0 -2
  395. package/dist/src/modules/espn/fantasy/view/index.d.ts +0 -2
  396. package/dist/src/modules/espn/fantasy/view/index.js +0 -2
  397. package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.FantasyPolling.d.ts +0 -32
  398. package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.FantasyPolling.js +0 -135
  399. package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.LeagueManagerPolling.d.ts +0 -32
  400. package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.LeagueManagerPolling.js +0 -144
  401. package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.TournamentPolling.d.ts +0 -32
  402. package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.TournamentPolling.js +0 -143
  403. package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.d.ts +0 -168
  404. package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.js +0 -815
  405. package/dist/src/modules/espn/key-plays/constants.d.ts +0 -3
  406. package/dist/src/modules/espn/key-plays/constants.js +0 -292
  407. package/dist/src/modules/espn/key-plays/interfaces/IKeyPlays.d.ts +0 -32
  408. package/dist/src/modules/espn/key-plays/interfaces/IKeyPlays.js +0 -14
  409. package/dist/src/modules/espn/key-plays/interfaces/IKeyPlaysResponse.d.ts +0 -44
  410. package/dist/src/modules/espn/key-plays/interfaces/IKeyPlaysResponse.js +0 -1
  411. package/dist/src/modules/espn/key-plays/interfaces/IKeyPlaysViewModel.d.ts +0 -17
  412. package/dist/src/modules/espn/key-plays/interfaces/IKeyPlaysViewModel.js +0 -1
  413. package/dist/src/modules/espn/key-plays/view/KeyPlayCardScoreTagView.d.ts +0 -9
  414. package/dist/src/modules/espn/key-plays/view/KeyPlayCardScoreTagView.js +0 -16
  415. package/dist/src/modules/espn/key-plays/view/KeyPlayCardView.d.ts +0 -27
  416. package/dist/src/modules/espn/key-plays/view/KeyPlayCardView.js +0 -115
  417. package/dist/src/modules/espn/key-plays/view/KeyPlayErrorStateView.d.ts +0 -13
  418. package/dist/src/modules/espn/key-plays/view/KeyPlayErrorStateView.js +0 -65
  419. package/dist/src/modules/espn/key-plays/view/KeyPlaysView.d.ts +0 -39
  420. package/dist/src/modules/espn/key-plays/view/KeyPlaysView.js +0 -179
  421. package/dist/src/modules/espn/key-plays/view-model/KeyPlaysViewModel.d.ts +0 -37
  422. package/dist/src/modules/espn/key-plays/view-model/KeyPlaysViewModel.js +0 -245
  423. package/dist/src/modules/espn/shop/mocks.d.ts +0 -22
  424. package/dist/src/modules/espn/shop/mocks.js +0 -391
  425. package/dist/src/modules/espn/shop/services/ShopService.d.ts +0 -23
  426. package/dist/src/modules/espn/shop/services/ShopService.js +0 -44
  427. package/dist/src/modules/espn/shop/types.d.ts +0 -164
  428. package/dist/src/modules/espn/shop/types.js +0 -7
  429. package/dist/src/modules/espn/shop/view/ProductDetailView/ProductDetailView.d.ts +0 -10
  430. package/dist/src/modules/espn/shop/view/ProductDetailView/ProductDetailView.js +0 -60
  431. package/dist/src/modules/espn/shop/view/ProductDetailView/index.d.ts +0 -2
  432. package/dist/src/modules/espn/shop/view/ProductDetailView/index.js +0 -2
  433. package/dist/src/modules/espn/shop/view/ShopView.d.ts +0 -38
  434. package/dist/src/modules/espn/shop/view/ShopView.js +0 -223
  435. package/dist/src/modules/espn/shop/view/components/BrowseCard/BrowseCard.d.ts +0 -103
  436. package/dist/src/modules/espn/shop/view/components/BrowseCard/BrowseCard.js +0 -23
  437. package/dist/src/modules/espn/shop/view/components/BrowseCard/index.d.ts +0 -2
  438. package/dist/src/modules/espn/shop/view/components/BrowseCard/index.js +0 -2
  439. package/dist/src/modules/espn/shop/view/components/ProductSummaryCard/ProductSummaryCard.d.ts +0 -104
  440. package/dist/src/modules/espn/shop/view/components/ProductSummaryCard/ProductSummaryCard.js +0 -26
  441. package/dist/src/modules/espn/shop/view/components/ProductSummaryCard/index.d.ts +0 -2
  442. package/dist/src/modules/espn/shop/view/components/ProductSummaryCard/index.js +0 -1
  443. package/dist/src/modules/espn/shop/view/components/ShopPromoView/ShopPromoView.d.ts +0 -8
  444. package/dist/src/modules/espn/shop/view/components/ShopPromoView/ShopPromoView.js +0 -19
  445. package/dist/src/modules/espn/shop/view/components/ShopPromoView/index.d.ts +0 -1
  446. package/dist/src/modules/espn/shop/view/components/ShopPromoView/index.js +0 -1
  447. package/dist/src/modules/espn/shop/view/components/ShopSection/ShopSection.d.ts +0 -12
  448. package/dist/src/modules/espn/shop/view/components/ShopSection/ShopSection.js +0 -34
  449. package/dist/src/modules/espn/shop/view/components/ShopSection/index.d.ts +0 -1
  450. package/dist/src/modules/espn/shop/view/components/ShopSection/index.js +0 -1
  451. package/dist/src/modules/espn/shop/view/index.d.ts +0 -2
  452. package/dist/src/modules/espn/shop/view/index.js +0 -2
  453. package/dist/src/modules/espn/shop/view-model/ShopViewModel.ShopPolling.d.ts +0 -31
  454. package/dist/src/modules/espn/shop/view-model/ShopViewModel.ShopPolling.js +0 -111
  455. package/dist/src/modules/espn/shop/view-model/ShopViewModel.d.ts +0 -73
  456. package/dist/src/modules/espn/shop/view-model/ShopViewModel.js +0 -323
  457. package/dist/src/modules/espn/stats/components/TeamStatistic.d.ts +0 -16
  458. package/dist/src/modules/espn/stats/components/TeamStatistic.js +0 -13
  459. package/dist/src/modules/espn/stats/interfaces/IStats.d.ts +0 -330
  460. package/dist/src/modules/espn/stats/interfaces/IStats.js +0 -46
  461. package/dist/src/modules/espn/stats/interfaces/IStatsViewModel.d.ts +0 -7
  462. package/dist/src/modules/espn/stats/interfaces/IStatsViewModel.js +0 -1
  463. package/dist/src/modules/espn/stats/mocks.d.ts +0 -2
  464. package/dist/src/modules/espn/stats/mocks.js +0 -746
  465. package/dist/src/modules/espn/stats/services/StatsService.d.ts +0 -54
  466. package/dist/src/modules/espn/stats/services/StatsService.js +0 -155
  467. package/dist/src/modules/espn/stats/utils/driveSummaryUtils.d.ts +0 -18
  468. package/dist/src/modules/espn/stats/utils/driveSummaryUtils.js +0 -48
  469. package/dist/src/modules/espn/stats/utils/playerStatusUtils.d.ts +0 -4
  470. package/dist/src/modules/espn/stats/utils/playerStatusUtils.js +0 -17
  471. package/dist/src/modules/espn/stats/utils.d.ts +0 -39
  472. package/dist/src/modules/espn/stats/utils.js +0 -62
  473. package/dist/src/modules/espn/stats/view/ActiveAthletes/ActiveAthletes.d.ts +0 -22
  474. package/dist/src/modules/espn/stats/view/ActiveAthletes/ActiveAthletes.js +0 -98
  475. package/dist/src/modules/espn/stats/view/ActiveAthletes/CollapsedAthletes/CollapsedAthletes.d.ts +0 -4
  476. package/dist/src/modules/espn/stats/view/ActiveAthletes/CollapsedAthletes/CollapsedAthletes.js +0 -27
  477. package/dist/src/modules/espn/stats/view/ActiveAthletes/ExpandedAthletes/ExpandedAthletes.d.ts +0 -22
  478. package/dist/src/modules/espn/stats/view/ActiveAthletes/ExpandedAthletes/ExpandedAthletes.js +0 -89
  479. package/dist/src/modules/espn/stats/view/ActiveAthletes/index.d.ts +0 -2
  480. package/dist/src/modules/espn/stats/view/ActiveAthletes/index.js +0 -2
  481. package/dist/src/modules/espn/stats/view/CareerMatchup/CareerMatchup.d.ts +0 -101
  482. package/dist/src/modules/espn/stats/view/CareerMatchup/CareerMatchup.js +0 -59
  483. package/dist/src/modules/espn/stats/view/CareerMatchup/index.d.ts +0 -1
  484. package/dist/src/modules/espn/stats/view/CareerMatchup/index.js +0 -1
  485. package/dist/src/modules/espn/stats/view/DriveSummary/DrivePlayCard.d.ts +0 -105
  486. package/dist/src/modules/espn/stats/view/DriveSummary/DrivePlayCard.js +0 -32
  487. package/dist/src/modules/espn/stats/view/DriveSummary/DriveSummary.d.ts +0 -10
  488. package/dist/src/modules/espn/stats/view/DriveSummary/DriveSummary.js +0 -40
  489. package/dist/src/modules/espn/stats/view/DriveSummary/ExpandedItems/DriveSummaryExpanded.d.ts +0 -27
  490. package/dist/src/modules/espn/stats/view/DriveSummary/ExpandedItems/DriveSummaryExpanded.js +0 -129
  491. package/dist/src/modules/espn/stats/view/DriveSummary/Header/DriveSummaryHeader.d.ts +0 -12
  492. package/dist/src/modules/espn/stats/view/DriveSummary/Header/DriveSummaryHeader.js +0 -26
  493. package/dist/src/modules/espn/stats/view/DriveSummary/MainStat/MainStat.d.ts +0 -10
  494. package/dist/src/modules/espn/stats/view/DriveSummary/MainStat/MainStat.js +0 -24
  495. package/dist/src/modules/espn/stats/view/DriveSummary/index.d.ts +0 -2
  496. package/dist/src/modules/espn/stats/view/DriveSummary/index.js +0 -2
  497. package/dist/src/modules/espn/stats/view/GameLeaders/GameLeaders.d.ts +0 -9
  498. package/dist/src/modules/espn/stats/view/GameLeaders/GameLeaders.js +0 -22
  499. package/dist/src/modules/espn/stats/view/GameLeaders/index.d.ts +0 -2
  500. package/dist/src/modules/espn/stats/view/GameLeaders/index.js +0 -2
  501. package/dist/src/modules/espn/stats/view/MatchPredictor/DonutChart/DonutChart.d.ts +0 -17
  502. package/dist/src/modules/espn/stats/view/MatchPredictor/DonutChart/DonutChart.js +0 -55
  503. package/dist/src/modules/espn/stats/view/MatchPredictor/DonutChart/index.d.ts +0 -2
  504. package/dist/src/modules/espn/stats/view/MatchPredictor/DonutChart/index.js +0 -1
  505. package/dist/src/modules/espn/stats/view/MatchPredictor/MatchPredictorView.d.ts +0 -100
  506. package/dist/src/modules/espn/stats/view/MatchPredictor/MatchPredictorView.js +0 -60
  507. package/dist/src/modules/espn/stats/view/MatchPredictor/index.d.ts +0 -3
  508. package/dist/src/modules/espn/stats/view/MatchPredictor/index.js +0 -2
  509. package/dist/src/modules/espn/stats/view/Penalties/Penalties.d.ts +0 -9
  510. package/dist/src/modules/espn/stats/view/Penalties/Penalties.js +0 -6
  511. package/dist/src/modules/espn/stats/view/Penalties/index.d.ts +0 -2
  512. package/dist/src/modules/espn/stats/view/Penalties/index.js +0 -2
  513. package/dist/src/modules/espn/stats/view/PlayerSeasonStats/ExpandedPlayerStats.d.ts +0 -16
  514. package/dist/src/modules/espn/stats/view/PlayerSeasonStats/ExpandedPlayerStats.js +0 -66
  515. package/dist/src/modules/espn/stats/view/PlayerSeasonStats/PlayerSeasonStatsCard.d.ts +0 -99
  516. package/dist/src/modules/espn/stats/view/PlayerSeasonStats/PlayerSeasonStatsCard.js +0 -26
  517. package/dist/src/modules/espn/stats/view/PlayerSeasonStats/PlayerSeasonStatsMinified.d.ts +0 -6
  518. package/dist/src/modules/espn/stats/view/PlayerSeasonStats/PlayerSeasonStatsMinified.js +0 -17
  519. package/dist/src/modules/espn/stats/view/PlayerSeasonStats/PlayerSeasonStatsView.d.ts +0 -8
  520. package/dist/src/modules/espn/stats/view/PlayerSeasonStats/PlayerSeasonStatsView.js +0 -165
  521. package/dist/src/modules/espn/stats/view/PlayerSeasonStats/index.d.ts +0 -1
  522. package/dist/src/modules/espn/stats/view/PlayerSeasonStats/index.js +0 -1
  523. package/dist/src/modules/espn/stats/view/RecentGames/RecentGames.d.ts +0 -100
  524. package/dist/src/modules/espn/stats/view/RecentGames/RecentGames.js +0 -23
  525. package/dist/src/modules/espn/stats/view/RecentGames/index.d.ts +0 -2
  526. package/dist/src/modules/espn/stats/view/RecentGames/index.js +0 -2
  527. package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/ExpandedScores.d.ts +0 -30
  528. package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/ExpandedScores.js +0 -123
  529. package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/ExpandedSummary.d.ts +0 -100
  530. package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/ExpandedSummary.js +0 -24
  531. package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/index.d.ts +0 -2
  532. package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/index.js +0 -2
  533. package/dist/src/modules/espn/stats/view/ScoringSummary/ScoreItem/ScoreItem.d.ts +0 -100
  534. package/dist/src/modules/espn/stats/view/ScoringSummary/ScoreItem/ScoreItem.js +0 -62
  535. package/dist/src/modules/espn/stats/view/ScoringSummary/ScoreItem/index.d.ts +0 -2
  536. package/dist/src/modules/espn/stats/view/ScoringSummary/ScoreItem/index.js +0 -2
  537. package/dist/src/modules/espn/stats/view/ScoringSummary/ScoresSection/ScoresSection.d.ts +0 -6
  538. package/dist/src/modules/espn/stats/view/ScoringSummary/ScoresSection/ScoresSection.js +0 -23
  539. package/dist/src/modules/espn/stats/view/ScoringSummary/ScoresSection/index.d.ts +0 -2
  540. package/dist/src/modules/espn/stats/view/ScoringSummary/ScoresSection/index.js +0 -2
  541. package/dist/src/modules/espn/stats/view/ScoringSummary/ScoringSummary.d.ts +0 -12
  542. package/dist/src/modules/espn/stats/view/ScoringSummary/ScoringSummary.js +0 -167
  543. package/dist/src/modules/espn/stats/view/ScoringSummary/index.d.ts +0 -1
  544. package/dist/src/modules/espn/stats/view/ScoringSummary/index.js +0 -1
  545. package/dist/src/modules/espn/stats/view/StatsItemView.d.ts +0 -8
  546. package/dist/src/modules/espn/stats/view/StatsItemView.js +0 -66
  547. package/dist/src/modules/espn/stats/view/StatsQRCode/StatsQRCodeView.d.ts +0 -100
  548. package/dist/src/modules/espn/stats/view/StatsQRCode/StatsQRCodeView.js +0 -36
  549. package/dist/src/modules/espn/stats/view/StatsQRCode/index.d.ts +0 -2
  550. package/dist/src/modules/espn/stats/view/StatsQRCode/index.js +0 -1
  551. package/dist/src/modules/espn/stats/view/StatsView.d.ts +0 -29
  552. package/dist/src/modules/espn/stats/view/StatsView.js +0 -164
  553. package/dist/src/modules/espn/stats/view/TeamStats/TeamStatsView.d.ts +0 -101
  554. package/dist/src/modules/espn/stats/view/TeamStats/TeamStatsView.js +0 -77
  555. package/dist/src/modules/espn/stats/view/TeamStats/index.d.ts +0 -2
  556. package/dist/src/modules/espn/stats/view/TeamStats/index.js +0 -1
  557. package/dist/src/modules/espn/stats/view/Teams/StatsCarousel.d.ts +0 -25
  558. package/dist/src/modules/espn/stats/view/Teams/StatsCarousel.js +0 -83
  559. package/dist/src/modules/espn/stats/view/Teams/StatsProgressBar.d.ts +0 -6
  560. package/dist/src/modules/espn/stats/view/Teams/StatsProgressBar.js +0 -19
  561. package/dist/src/modules/espn/stats/view/Teams/Teams.d.ts +0 -100
  562. package/dist/src/modules/espn/stats/view/Teams/Teams.js +0 -39
  563. package/dist/src/modules/espn/stats/view/Teams/index.d.ts +0 -2
  564. package/dist/src/modules/espn/stats/view/Teams/index.js +0 -2
  565. package/dist/src/modules/espn/stats/view/WinProbability/WinProbability.d.ts +0 -100
  566. package/dist/src/modules/espn/stats/view/WinProbability/WinProbability.js +0 -28
  567. package/dist/src/modules/espn/stats/view/WinProbability/index.d.ts +0 -2
  568. package/dist/src/modules/espn/stats/view/WinProbability/index.js +0 -2
  569. package/dist/src/modules/espn/stats/view/components/AthletesStatistics/AthletesStatistics.d.ts +0 -115
  570. package/dist/src/modules/espn/stats/view/components/AthletesStatistics/AthletesStatistics.js +0 -89
  571. package/dist/src/modules/espn/stats/view/components/AthletesStatistics/StatisticTable.d.ts +0 -3
  572. package/dist/src/modules/espn/stats/view/components/AthletesStatistics/StatisticTable.js +0 -12
  573. package/dist/src/modules/espn/stats/view/components/AthletesStatistics/index.d.ts +0 -2
  574. package/dist/src/modules/espn/stats/view/components/AthletesStatistics/index.js +0 -2
  575. package/dist/src/modules/espn/stats/view/index.d.ts +0 -2
  576. package/dist/src/modules/espn/stats/view/index.js +0 -2
  577. package/dist/src/modules/espn/stats/view-model/StatsViewModel.d.ts +0 -322
  578. package/dist/src/modules/espn/stats/view-model/StatsViewModel.js +0 -1416
  579. package/dist/src/modules/fox/components/TabLoadError/TabLoadError.d.ts +0 -96
  580. package/dist/src/modules/fox/components/TabLoadError/TabLoadError.js +0 -19
  581. package/dist/src/modules/fox/components/TabLoadError/index.d.ts +0 -2
  582. package/dist/src/modules/fox/components/TabLoadError/index.js +0 -2
  583. package/dist/src/modules/fox/key-plays/view/FoxKeyPlays.d.ts +0 -2
  584. package/dist/src/modules/fox/key-plays/view/FoxKeyPlays.js +0 -5
  585. package/dist/src/modules/fox/multi-view/interfaces/IMultiViewViewModel.d.ts +0 -3
  586. package/dist/src/modules/fox/multi-view/interfaces/IMultiViewViewModel.js +0 -1
  587. package/dist/src/modules/fox/multi-view/services/MultiViewService.d.ts +0 -104
  588. package/dist/src/modules/fox/multi-view/services/MultiViewService.js +0 -97
  589. package/dist/src/modules/fox/multi-view/types.d.ts +0 -68
  590. package/dist/src/modules/fox/multi-view/types.js +0 -86
  591. package/dist/src/modules/fox/multi-view/view/BuildYourOwn/BuildYourOwn.d.ts +0 -7
  592. package/dist/src/modules/fox/multi-view/view/BuildYourOwn/BuildYourOwn.js +0 -99
  593. package/dist/src/modules/fox/multi-view/view/BuildYourOwn/index.d.ts +0 -2
  594. package/dist/src/modules/fox/multi-view/view/BuildYourOwn/index.js +0 -2
  595. package/dist/src/modules/fox/multi-view/view/CuratedMultiview/CuratedMultiviews.d.ts +0 -8
  596. package/dist/src/modules/fox/multi-view/view/CuratedMultiview/CuratedMultiviews.js +0 -92
  597. package/dist/src/modules/fox/multi-view/view/CuratedMultiview/index.d.ts +0 -2
  598. package/dist/src/modules/fox/multi-view/view/CuratedMultiview/index.js +0 -2
  599. package/dist/src/modules/fox/multi-view/view/FoxMultiView.d.ts +0 -3
  600. package/dist/src/modules/fox/multi-view/view/FoxMultiView.js +0 -68
  601. package/dist/src/modules/fox/multi-view/view/components/BuildYourOwnTabs/BuildYourOwnTabs.d.ts +0 -8
  602. package/dist/src/modules/fox/multi-view/view/components/BuildYourOwnTabs/BuildYourOwnTabs.js +0 -30
  603. package/dist/src/modules/fox/multi-view/view/components/BuildYourOwnTabs/index.d.ts +0 -2
  604. package/dist/src/modules/fox/multi-view/view/components/BuildYourOwnTabs/index.js +0 -2
  605. package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/CustomMultiviewStreamsCard.d.ts +0 -118
  606. package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/CustomMultiviewStreamsCard.js +0 -51
  607. package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/index.d.ts +0 -2
  608. package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/index.js +0 -2
  609. package/dist/src/modules/fox/multi-view/view/components/LayoutSelector/LayoutSelector.d.ts +0 -13
  610. package/dist/src/modules/fox/multi-view/view/components/LayoutSelector/LayoutSelector.js +0 -40
  611. package/dist/src/modules/fox/multi-view/view/components/LayoutSelector/index.d.ts +0 -2
  612. package/dist/src/modules/fox/multi-view/view/components/LayoutSelector/index.js +0 -2
  613. package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/CuratedMultiviewCard.d.ts +0 -101
  614. package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/CuratedMultiviewCard.js +0 -41
  615. package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/index.d.ts +0 -2
  616. package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/index.js +0 -2
  617. package/dist/src/modules/fox/multi-view/view-model/MultiViewViewModel.d.ts +0 -84
  618. package/dist/src/modules/fox/multi-view/view-model/MultiViewViewModel.js +0 -509
  619. package/dist/src/modules/fox/multi-view/view-model/index.d.ts +0 -1
  620. package/dist/src/modules/fox/multi-view/view-model/index.js +0 -1
  621. package/dist/src/modules/fox/stats/view/FoxStatsView.d.ts +0 -2
  622. package/dist/src/modules/fox/stats/view/FoxStatsView.js +0 -5
  623. package/dist/src/modules/maestro/builder/components/BuilderSection/BuilderSection.d.ts +0 -11
  624. package/dist/src/modules/maestro/builder/components/BuilderSection/BuilderSection.js +0 -52
  625. package/dist/src/modules/maestro/builder/components/BuilderSection/index.d.ts +0 -2
  626. package/dist/src/modules/maestro/builder/components/BuilderSection/index.js +0 -2
  627. package/dist/src/modules/maestro/builder/components/ExpandableCard/ExpandableCard.d.ts +0 -110
  628. package/dist/src/modules/maestro/builder/components/ExpandableCard/ExpandableCard.js +0 -37
  629. package/dist/src/modules/maestro/builder/components/ExpandableCard/index.d.ts +0 -2
  630. package/dist/src/modules/maestro/builder/components/ExpandableCard/index.js +0 -2
  631. package/dist/src/modules/maestro/builder/components/SimpleCard/SimpleCard.d.ts +0 -104
  632. package/dist/src/modules/maestro/builder/components/SimpleCard/SimpleCard.js +0 -12
  633. package/dist/src/modules/maestro/builder/components/SimpleCard/index.d.ts +0 -2
  634. package/dist/src/modules/maestro/builder/components/SimpleCard/index.js +0 -2
  635. package/dist/src/modules/maestro/builder/index.d.ts +0 -7
  636. package/dist/src/modules/maestro/builder/index.js +0 -7
  637. package/dist/src/modules/maestro/builder/mocks/mockBuilderPanel.d.ts +0 -149
  638. package/dist/src/modules/maestro/builder/mocks/mockBuilderPanel.js +0 -240
  639. package/dist/src/modules/maestro/builder/types.d.ts +0 -52
  640. package/dist/src/modules/maestro/builder/types.js +0 -1
  641. package/dist/src/modules/maestro/builder/view/BuilderPanelView.d.ts +0 -4
  642. package/dist/src/modules/maestro/builder/view/BuilderPanelView.js +0 -52
  643. package/dist/src/modules/maestro/builder/view-model/BuilderPanelViewModel.d.ts +0 -40
  644. package/dist/src/modules/maestro/builder/view-model/BuilderPanelViewModel.js +0 -229
  645. package/dist/src/modules/maestro/builder/view-model/index.d.ts +0 -1
  646. package/dist/src/modules/maestro/builder/view-model/index.js +0 -1
  647. package/dist/src/modules/maestro/hello-world/HelloWorldImage.d.ts +0 -2
  648. package/dist/src/modules/maestro/hello-world/HelloWorldImage.js +0 -32
  649. package/dist/src/modules/maestro/hello-world/HelloWorldView.d.ts +0 -11
  650. package/dist/src/modules/maestro/hello-world/HelloWorldView.js +0 -40
  651. package/dist/src/modules/maestro/hello-world/index.d.ts +0 -2
  652. package/dist/src/modules/maestro/hello-world/index.js +0 -2
  653. package/dist/src/sentry.d.ts +0 -3
  654. package/dist/src/sentry.js +0 -51
  655. package/dist/src/services/AnalyticsService/AnalyticsService.d.ts +0 -85
  656. package/dist/src/services/AnalyticsService/AnalyticsService.js +0 -406
  657. package/dist/src/services/AnalyticsService/types.d.ts +0 -65
  658. package/dist/src/services/AnalyticsService/types.js +0 -1
  659. package/dist/src/services/InsightsService/InsightsPayloadBuilder.d.ts +0 -279
  660. package/dist/src/services/InsightsService/InsightsPayloadBuilder.js +0 -385
  661. package/dist/src/services/InsightsService/InsightsService.d.ts +0 -11
  662. package/dist/src/services/InsightsService/InsightsService.js +0 -74
  663. package/dist/src/services/NetworkManager/NetworkManager.d.ts +0 -153
  664. package/dist/src/services/NetworkManager/NetworkManager.js +0 -434
  665. package/dist/src/services/NetworkManager/errors.d.ts +0 -19
  666. package/dist/src/services/NetworkManager/errors.js +0 -59
  667. package/dist/src/services/NetworkManager/types.d.ts +0 -7
  668. package/dist/src/services/NetworkManager/types.js +0 -1
  669. package/dist/src/services/StaticService/StaticService.d.ts +0 -20
  670. package/dist/src/services/StaticService/StaticService.js +0 -86
  671. package/dist/src/services/StaticService/index.d.ts +0 -2
  672. package/dist/src/services/StaticService/index.js +0 -2
  673. package/dist/src/services/StaticService/mocks.d.ts +0 -3
  674. package/dist/src/services/StaticService/mocks.js +0 -119
  675. package/dist/src/services/StaticService/types.d.ts +0 -78
  676. package/dist/src/services/StaticService/types.js +0 -1
  677. package/dist/src/services/ThemeManager/constants.d.ts +0 -2
  678. package/dist/src/services/ThemeManager/constants.js +0 -47
  679. package/dist/src/services/UserSettingsManager.d.ts +0 -63
  680. package/dist/src/services/UserSettingsManager.js +0 -158
  681. package/dist/src/test-polyfills.d.ts +0 -1
  682. package/dist/src/test-polyfills.js +0 -15
  683. package/dist/src/view-models/MaestroEventViewModel.d.ts +0 -96
  684. package/dist/src/view-models/MaestroEventViewModel.js +0 -386
  685. package/dist/src/view-models/PanelManagerViewModel.d.ts +0 -49
  686. package/dist/src/view-models/PanelManagerViewModel.js +0 -195
  687. package/dist/src/view-models/ViewModel.d.ts +0 -12
  688. package/dist/src/view-models/ViewModel.js +0 -32
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[14],{104:function(t,e,i){"use strict";i.d(e,"a",(function(){return s})),i.d(e,"b",(function(){return a}));const s=t=>t.toLowerCase().trim().replace(/[\s\W-]+/g,"-").replace(/^-+|-+$/g,"");function a(t){let e=0;for(let i=0;i<t.length;i++){e=(e<<5)-e+t.charCodeAt(i),e&=e}return e}},246:function(t,e,i){"use strict";i.r(e),i.d(e,"MultiViewViewModel",(function(){return p}));var s=i(34),a=i(3),r=i(104);const n={2:{layoutId:"LR",description:"Two equal-sized windows side by side",positions:{L:{w:.4766,h:.4766,x:.259,y:.5},R:{w:.4766,h:.4766,x:.7409,y:.5}},name:"50/50",windowCount:2,positionsOrder:["L","R"]},3:{layoutId:"TLTRB",description:"Three equal-sized windows in T layout",positions:{B:{w:.458,h:.458,x:.5,y:.266},TL:{w:.458,h:.458,x:.268,y:.7335},TR:{w:.458,h:.458,x:.732,y:.7335}},name:"Triple T",windowCount:3,positionsOrder:["TL","TR","B"]},4:{layoutId:"TLTRBLBR",description:"Four equal-sized windows in 2x2 grid",positions:{BL:{w:.4766,h:.4766,x:.259,y:.257},BR:{w:.4766,h:.4766,x:.741,y:.257},TL:{w:.4766,h:.4766,x:.259,y:.743},TR:{w:.4766,h:.4766,x:.741,y:.743}},name:"2x2 Grid",windowCount:4,positionsOrder:["TL","TR","BL","BR"]}};var o=i(35);function l(t,e,i){return(e=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var s=i.call(t,e||"default");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}var u=class{constructor(){l(this,"networkManager",void 0),l(this,"productAPI",null),this.networkManager=new o.b}getLayouts(){return this.productAPI?this.networkManager.externalApiRequest({endpoint:"https://qa-mvlm.api.shared.digitalvideoplatform.com/mvlm/v1/layouts",headers:this.productAPI.headers}):null}setProductAPIData(t){this.productAPI=t}pollCuratedMultiviews(t,e,i){return this.productAPI?this.networkManager.pollExternalApiRequest({endpoint:this.productAPI.url,interval:t,method:this.productAPI.method,headers:this.productAPI.headers,onData:e,onError:i}):null}getOrCreateCustomMultiview(t,e={}){return this.networkManager.externalApiRequest({endpoint:"https://qa-mvlm.api.shared.digitalvideoplatform.com/mvlm/v1/mvlisting",method:o.a.POST,data:t,headers:e})}},d=i(15),c=i(4),h=i(8);function v(t,e,i){return(e=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var s=i.call(t,e||"default");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}class p extends s.a{constructor(t,e,i){super(),v(this,"_layouts",new a.a([])),v(this,"_isPolling",new a.a(!1)),v(this,"service",void 0),v(this,"delegate",void 0),v(this,"eventId",void 0),v(this,"analyticsService",void 0),v(this,"isDataLoading",new a.a(!1)),v(this,"pollingTask",null),v(this,"pollingInterval",3e4),v(this,"items",new a.a([])),v(this,"hasEverSuccessfullyLoaded",new a.a(!1)),v(this,"onAuthError",void 0),v(this,"_selectedLayoutId",new a.a(null)),v(this,"lastResponseHash",null),this.eventId=t,this.delegate=e,this.analyticsService=i,this.service=new u}getLayouts(){return this._layouts.value}getIsPolling(){return this._isPolling}getIsDataLoading(){return this.isDataLoading}getEventId(){return this.eventId}updateBuildYourOwnItem(t){this.items.value=this.items.value.map(e=>"build-your-own"===e.type?t(e):e)}calculateElapsedTime(t){const e=Math.floor((Date.now()-new Date(t).getTime())/6e4);return e<0?"":e+"'"}buildStreamsFromItems(t){return t.filter(t=>!0===t.is_multiview_eligible).map(t=>{var e,i,s;const a=[{id:t.entity_id||"",name:"Main Broadcast",isActive:!0}];if(t.associated_listings&&Array.isArray(t.associated_listings))for(const e of t.associated_listings)a.push({id:e.entity_id||"",name:e.title||"",isActive:!1});const r=null!==(e=t.location)&&void 0!==e&&e.city&&null!==(i=t.location)&&void 0!==i&&i.state?`${t.location.city}, ${t.location.state}`:void 0,n=t.start_time?this.calculateElapsedTime(t.start_time):void 0;return{listing:{id:t.entity_id||"",description:t.title||"",backgroundImage:(null===(s=t.images)||void 0===s?void 0:s.series_list)||"",type:t.type||"unknown"},totalCameras:a.length,activeCameraCount:a.filter(t=>t.isActive).length,currentTime:n,location:r,cameras:a}})}mergeStreams(t,e){const i=new Map(t.map(t=>[t.listing.id,t]));return e.map(t=>{const e=i.get(t.listing.id);if(!e)return t;const s=new Map(e.cameras.map(t=>[t.id,t.isActive])),a=t.cameras.map(t=>({...t,isActive:s.has(t.id)?s.get(t.id):t.isActive})),r=a.filter(t=>t.isActive).length;return{...t,cameras:a,activeCameraCount:r}})}getLayoutsObservable(){return this._layouts}getSelectedLayoutId(){return this._selectedLayoutId}onSelectLayout(t){this._layouts.value.find(e=>e.layoutId===t)&&(this._selectedLayoutId.value=t)}onToggleCamera(t,e){this.updateBuildYourOwnItem(i=>({...i,streams:i.streams.map(i=>{if(i.listing.id!==t)return i;const s=i.cameras.map(t=>t.id===e?{...t,isActive:!t.isActive}:t),a=s.filter(t=>t.isActive).length;return{...i,cameras:s,activeCameraCount:a}})}))}notifyProductAPIUnauthorized(t){if(401!==t.statusCode)return;const e={code:t.statusCode,message:t.message||"Not authorized",success:!1,data:t.data};this.onAuthError&&this.onAuthError(e)}async trackPanelView(){try{await this.analyticsService.panelView("foxMultiView")}catch(t){Object(c.a)(t,{context:"MultiViewViewModel.trackPanelView"}),console.error("[MULTIVIEW] Error tracking panel view:",t)}}async init(){try{await this.trackPanelView(),await this.fetchLayouts();const t=this.getPanelConfigInterval();t&&(this.pollingInterval=t),this.refreshPolling()}catch(t){const e=t instanceof Error?t.message:"Failed to initialize MultiView";this.setError(e),console.error("[MultiViewViewModel] Initialization error:",t)}}async fetchLayouts(){if(!this.getLayouts().length)try{this.isDataLoading.value=!0;const t=await this.service.getLayouts();t&&t.length>0?this._layouts.value=t:this._layouts.value=Object.values(n)}catch(t){if(console.log("[MultiViewViewModel] Error fetching layouts:",t),t instanceof d.a)return void this.notifyProductAPIUnauthorized(t);0===this._layouts.value.length&&(this._layouts.value=Object.values(n))}finally{this.isDataLoading.value=!1}}async setDataToPanel(t){try{(t=>!(!t||"object"!=typeof t)&&("string"==typeof t.url&&t.url.length>0&&"string"==typeof t.method&&Object.values(o.a).includes(t.method)&&null!==t.headers&&"object"==typeof t.headers&&!Array.isArray(t.headers)&&(!t.callback||"function"==typeof t.callback)))(t.productAPIRequest)&&(this.service.setProductAPIData(t.productAPIRequest),this.onAuthError=t.productAPIRequest.callback,await this.fetchLayouts(),this.refreshPolling())}catch(t){const e=t instanceof Error?t.message:"Failed to set panel data";console.error("[MultiViewViewModel] Error setting panel data:",t),this.hasEverSuccessfullyLoaded.value||this.setError(e)}}async onSelectCustomMultiview(t){try{this.setLoading(!0),this.setError(null);const e=await this.service.getOrCreateCustomMultiview(t);this.delegate&&this.delegate.onPanelEvent({type:"fox-multiview:custom-multiview",payload:e.multiviewId})}catch(t){const e=t instanceof Error?t.message:"Failed to select custom multiview";throw this.setError(e),console.error("[MultiViewViewModel] Error selecting multiview:",t),t}finally{this.setLoading(!1)}}cleanup(){this.stopPolling(),this.hasEverSuccessfullyLoaded.value=!1,this._selectedLayoutId.value=null,this.lastResponseHash=null}onSelectCuratedMultiview(t){if(t.isSelected)return;const e=n[t.listings.length];if(!e)return;const i={childListings:t.listings.map((t,i)=>({callsign:t.type,listingId:t.id,position:e.positions[e.positionsOrder[i]]})),multiviewID:t.id};this.delegate.onPanelEvent({type:"fox-multiview:new-multiview",payload:i})}updatePollingInterval(){const t=this.getPanelConfigInterval();t&&t!==this.pollingInterval&&(this.pollingInterval=t,this.refreshPolling())}getPanelConfigInterval(){var t,e,i,s,a;const r=null===(t=h.default.getPageConfig())||void 0===t||null===(e=t.panels)||void 0===e||null===(i=e.find(t=>"foxMultiView"===t.panel_type))||void 0===i||null===(s=i.renderer)||void 0===s||null===(a=s.block_data)||void 0===a?void 0:a.product_api_polling_interval;if(null==r)return null;const n=parseInt(String(r),10);return Number.isFinite(n)&&n>0?1e3*n:null}stopPolling(){this.pollingTask&&(this.pollingTask.stop(),this.pollingTask=null),this.isDataLoading.value&&(this.isDataLoading.value=!1)}refreshPolling(){this.stopPolling(),this.pollingTask=this.service.pollCuratedMultiviews(this.pollingInterval,t=>{this.updatePollingInterval(),this.processCuratedMultiviewData(t)},t=>{console.error("[MultiViewViewModel] Error polling data:",t),t instanceof d.a&&this.notifyProductAPIUnauthorized(t),this.hasEverSuccessfullyLoaded.value||this.setError(t instanceof Error?t.message:"Failed to load data")})}processCuratedMultiviewData(t){if(!t||!t.status||!t.data)return;if(!Array.isArray(t.data.items))return;const e=Object(r.b)(JSON.stringify(t));if(this.lastResponseHash===e)return void console.log("[MULTIVIEW] Response hash unchanged - skipping update");this.lastResponseHash=e;const i=[];for(const e of t.data.items){const t=[];if(e.is_multiview){var s;if(e.multiview_metadata&&Array.isArray(e.multiview_metadata))for(const i of e.multiview_metadata){var a;let s=e.title||"";i.is_sportingevent&&i.left_team&&i.right_team&&i.left_team.abbreviation&&i.right_team.abbreviation&&(s=`${i.left_team.abbreviation} vs ${i.right_team.abbreviation}`),t.push({id:i.entity_id||"",description:s,backgroundImage:(null===(a=i.images)||void 0===a?void 0:a.series_list)||"",type:i.type||"unknown"})}else t.push({id:e.entity_id||"",description:e.title||"",backgroundImage:(null===(s=e.images)||void 0===s?void 0:s.still)||"",type:e.type||"unknown"});i.push({id:e.entity_id||"",isSelected:this.eventId===e.entity_id,listings:t})}}const n=[...this.items.value],o=n.findIndex(t=>"curated-multiviews"===t.type);0===i.length?-1!==o&&n.splice(o,1):-1!==o?n[o]={type:"curated-multiviews",items:i}:n.unshift({type:"curated-multiviews",items:i});const l=this.buildStreamsFromItems(t.data.items),u=n.findIndex(t=>"build-your-own"===t.type);if(-1!==u){const t=n[u],e=this.mergeStreams(t.streams,l);n[u]={type:"build-your-own",streams:e}}else n.push({type:"build-your-own",streams:l});this.items.value=n,this.hasEverSuccessfullyLoaded.value||(this.hasEverSuccessfullyLoaded.value=!0,this.error.value&&this.setError(null))}async clearTabLoadFailure(){this.setError(null),this.hasEverSuccessfullyLoaded.value=!1,await this.fetchLayouts(),this.refreshPolling()}}}}]);
2
- //# sourceMappingURL=14.maestro-web-sdk.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/helpers/strings.ts","webpack:///./src/modules/fox/multi-view/types.ts","webpack:///./src/modules/fox/multi-view/services/MultiViewService.ts","webpack:///./src/modules/fox/multi-view/view-model/MultiViewViewModel.ts"],"names":["slugify","str","toLowerCase","trim","replace","stringHashCode","hash","i","length","charCodeAt","DEFAULT_LAYOUTS_BY_LISTINGS_QUANTITY","2","layoutId","description","positions","L","w","h","x","y","R","name","windowCount","positionsOrder","3","B","TL","TR","4","BL","BR","MultiViewService","constructor","_defineProperty","this","networkManager","NetworkManager","getLayouts","productAPI","externalApiRequest","endpoint","headers","setProductAPIData","pollCuratedMultiviews","interval","onData","onError","pollExternalApiRequest","url","method","getOrCreateCustomMultiview","config","HttpMethod","POST","data","MultiViewViewModel","ViewModel","eventId","delegate","analyticsService","super","Observable","service","_layouts","value","getIsPolling","_isPolling","getIsDataLoading","isDataLoading","getEventId","updateBuildYourOwnItem","updater","items","map","type","calculateElapsedTime","startTime","elapsedMinutes","Math","floor","Date","now","getTime","buildStreamsFromItems","filter","item","is_multiview_eligible","_item$location","_item$location2","_item$images","cameras","id","entity_id","isActive","associated_listings","Array","isArray","al","push","title","location","city","state","undefined","currentTime","start_time","listing","backgroundImage","images","series_list","totalCameras","activeCameraCount","c","mergeStreams","existing","incoming","existingMap","Map","s","newStream","prev","get","prevCameraMap","has","getLayoutsObservable","getSelectedLayoutId","_selectedLayoutId","onSelectLayout","find","l","onToggleCamera","streamId","cameraId","streams","stream","notifyProductAPIUnauthorized","error","statusCode","payload","code","message","success","onAuthError","panelView","captureException","context","console","trackPanelView","fetchLayouts","panelConfigInterval","getPanelConfigInterval","pollingInterval","refreshPolling","errorMessage","Error","setError","layouts","Object","values","log","AuthError","includes","callback","isProductAPIValid","productAPIRequest","hasEverSuccessfullyLoaded","params","setLoading","response","onPanelEvent","multiviewId","cleanup","stopPolling","lastResponseHash","onSelectCuratedMultiview","isSelected","layout","listings","childListings","listingIndex","callsign","listingId","position","multiviewID","updatePollingInterval","_SDK$getPageConfig","_SDK$getPageConfig$pa","_SDK$getPageConfig$pa2","_SDK$getPageConfig$pa3","_SDK$getPageConfig$pa4","intervalInSeconds","SDK","getPageConfig","panels","p","panel_type","renderer","block_data","product_api_polling_interval","parsedInterval","parseInt","String","Number","isFinite","pollingTask","stop","processCuratedMultiviewData","status","responseHash","JSON","stringify","curatedMultiviewItem","is_multiview","_item$images2","multiview_metadata","mv","_mv$images","is_sportingevent","left_team","right_team","abbreviation","still","newItems","existingCuratedMultiviewIndex","findIndex","splice","unshift","newStreams","existingByoIndex","existingByo","mergedStreams"],"mappings":"2FAAA,oEAAO,MAAMA,EAAWC,GACtBA,EACGC,cACAC,OACAC,QAAQ,YAAa,KACrBA,QAAQ,WAAY,IAElB,SAASC,EAAeJ,GAC7B,IAAIK,EAAO,EACX,IAAK,IAAIC,EAAI,EAAGA,EAAIN,EAAIO,OAAQD,IAAK,CAEnCD,GAAQA,GAAQ,GAAKA,EADRL,EAAIQ,WAAWF,GAE5BD,GAAcA,EAEhB,OAAOA,I,uHC6DF,MAAMI,EAGT,CACFC,EAAG,CACDC,SAAU,KACVC,YAAa,uCACbC,UAAW,CACTC,EAAG,CACDC,EAAG,MACHC,EAAG,MACHC,EAAG,KACHC,EAAG,IAELC,EAAG,CACDJ,EAAG,MACHC,EAAG,MACHC,EAAG,MACHC,EAAG,KAGPE,KAAM,QACNC,YAAa,EACbC,eAAgB,CAAC,IAAK,MAExBC,EAAG,CACDZ,SAAU,QACVC,YAAa,wCACbC,UAAW,CACTW,EAAG,CACDT,EAAG,KACHC,EAAG,KACHC,EAAG,GACHC,EAAG,MAELO,GAAI,CACFV,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,EAAG,OAELQ,GAAI,CACFX,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,EAAG,QAGPE,KAAM,WACNC,YAAa,EACbC,eAAgB,CAAC,KAAM,KAAM,MAE/BK,EAAG,CACDhB,SAAU,WACVC,YAAa,uCACbC,UAAW,CACTe,GAAI,CACFb,EAAG,MACHC,EAAG,MACHC,EAAG,KACHC,EAAG,MAELW,GAAI,CACFd,EAAG,MACHC,EAAG,MACHC,EAAG,KACHC,EAAG,MAELO,GAAI,CACFV,EAAG,MACHC,EAAG,MACHC,EAAG,KACHC,EAAG,MAELQ,GAAI,CACFX,EAAG,MACHC,EAAG,MACHC,EAAG,KACHC,EAAG,OAGPE,KAAM,WACNC,YAAa,EACbC,eAAgB,CAAC,KAAM,KAAM,KAAM,Q,ycCexBQ,MApFf,MAIEC,cAAcC,EAAA,8BAAAA,EAAA,kBAF8B,MAG1CC,KAAKC,eAAiB,IAAIC,IAQ5BC,aACE,OAAKH,KAAKI,WAIHJ,KAAKC,eAAeI,mBAAsC,CAC/DC,SAAU,sEACVC,QAASP,KAAKI,WAAWG,UALlB,KAcXC,kBAAkBJ,GAChBJ,KAAKI,WAAaA,EAYpBK,sBACEC,EACAC,EACAC,GAEA,OAAKZ,KAAKI,WAIHJ,KAAKC,eAAeY,uBAAuB,CAChDP,SAAUN,KAAKI,WAAWU,IAC1BJ,WACAK,OAAQf,KAAKI,WAAWW,OACxBR,QAASP,KAAKI,WAAWG,QACzBI,SACAC,YATO,KAuBXI,2BACEC,EACAV,EAAkC,IAElC,OAAOP,KAAKC,eAAeI,mBAA6C,CACtEC,SAAU,wEACVS,OAAQG,IAAWC,KACnBC,KAAMH,EACNV,c,mdC9HC,MAAMc,UAA2BC,IAgBtCxB,YACEyB,EACAC,EACAC,GAEAC,QAAQ3B,EAAA,gBApBS,IAAI4B,IAA8B,KAAG5B,EAAA,kBACnC,IAAI4B,KAAoB,IAAM5B,EAAA,uBAAAA,EAAA,wBAAAA,EAAA,uBAAAA,EAAA,gCAAAA,EAAA,qBAK5B,IAAI4B,KAAoB,IAAM5B,EAAA,mBACF,MAAIA,EAAA,uBA5BxB,KA6B2BA,EAAA,aAClD,IAAI4B,IAA4B,KAAG5B,EAAA,iCACP,IAAI4B,KAAoB,IAAM5B,EAAA,2BAAAA,EAAA,yBAEtC,IAAI4B,IAA0B,OAAK5B,EAAA,wBACrB,MAQxCC,KAAKuB,QAAUA,EACfvB,KAAKwB,SAAWA,EAChBxB,KAAKyB,iBAAmBA,EACxBzB,KAAK4B,QAAU,IAAI/B,EAGrBM,aACE,OAAOH,KAAK6B,SAASC,MAGvBC,eACE,OAAO/B,KAAKgC,WAGdC,mBACE,OAAOjC,KAAKkC,cAGdC,aACE,OAAOnC,KAAKuB,QAGNa,uBACNC,GAEArC,KAAKsC,MAAMR,MAAQ9B,KAAKsC,MAAMR,MAAMS,IAAKlE,GAC5B,mBAAXA,EAAEmE,KAA4BH,EAAQhE,GAAyBA,GAI3DoE,qBAAqBC,GAC3B,MAAMC,EAAiBC,KAAKC,OACzBC,KAAKC,MAAQ,IAAID,KAAKJ,GAAWM,WAAa,KAEjD,OAAIL,EAAiB,EAAU,GACrBA,EAAH,IAGDM,sBACNX,GAEA,OAAOA,EACJY,OAAQC,IAAwC,IAA/BA,EAAKC,uBACtBb,IAAKY,IAAS,IAAAE,EAAAC,EAAAC,EACb,MAAMC,EAAU,CACd,CACEC,GAAIN,EAAKO,WAAa,GACtBvE,KAAM,iBACNwE,UAAU,IAId,GACER,EAAKS,qBACLC,MAAMC,QAAQX,EAAKS,qBAEnB,IAAK,MAAMG,KAAMZ,EAAKS,oBACpBJ,EAAQQ,KAAK,CACXP,GAAIM,EAAGL,WAAa,GACpBvE,KAAM4E,EAAGE,OAAS,GAClBN,UAAU,IAKhB,MAAMO,EACS,QAAbb,EAAAF,EAAKe,gBAAQ,IAAAb,GAAbA,EAAec,MAAqB,QAAjBb,EAAIH,EAAKe,gBAAQ,IAAAZ,GAAbA,EAAec,MAClC,GAAGjB,EAAKe,SAASC,SAAShB,EAAKe,SAASE,aACxCC,EAEAC,EAAcnB,EAAKoB,WACrBvE,KAAKyC,qBAAqBU,EAAKoB,iBAC/BF,EAEJ,MAAO,CACLG,QAAS,CACPf,GAAIN,EAAKO,WAAa,GACtB/E,YAAawE,EAAKc,OAAS,GAC3BQ,iBAA4B,QAAXlB,EAAAJ,EAAKuB,cAAM,IAAAnB,OAAA,EAAXA,EAAaoB,cAAe,GAC7CnC,KAAMW,EAAKX,MAAQ,WAErBoC,aAAcpB,EAAQlF,OACtBuG,kBAAmBrB,EAAQN,OAAQ4B,GAAMA,EAAEnB,UAAUrF,OACrDgG,cACAJ,WACAV,aAKAuB,aACNC,EACAC,GAEA,MAAMC,EAAc,IAAIC,IAAIH,EAASzC,IAAK6C,GAAM,CAACA,EAAEZ,QAAQf,GAAI2B,KAE/D,OAAOH,EAAS1C,IAAK8C,IACnB,MAAMC,EAAOJ,EAAYK,IAAIF,EAAUb,QAAQf,IAC/C,IAAK6B,EAAM,OAAOD,EAElB,MAAMG,EAAgB,IAAIL,IACxBG,EAAK9B,QAAQjB,IAAKuC,GAAM,CAACA,EAAErB,GAAIqB,EAAEnB,YAE7BH,EAAU6B,EAAU7B,QAAQjB,IAAKuC,IAAC,IACnCA,EACHnB,SAAU6B,EAAcC,IAAIX,EAAErB,IAC1B+B,EAAcD,IAAIT,EAAErB,IACpBqB,EAAEnB,YAEFkB,EAAoBrB,EAAQN,OAAQ4B,GAAMA,EAAEnB,UAAUrF,OAE5D,MAAO,IAAK+G,EAAW7B,UAASqB,uBAIpCa,uBACE,OAAO1F,KAAK6B,SAGd8D,sBACE,OAAO3F,KAAK4F,kBAGdC,eAAenH,GACEsB,KAAK6B,SAASC,MAAMgE,KAAMC,GAAMA,EAAErH,WAAaA,KAG9DsB,KAAK4F,kBAAkB9D,MAAQpD,GAGjCsH,eAAeC,EAAkBC,GAC/BlG,KAAKoC,uBAAwBe,IAAI,IAC5BA,EACHgD,QAAShD,EAAKgD,QAAQ5D,IAAK6D,IACzB,GAAIA,EAAO5B,QAAQf,KAAOwC,EAAU,OAAOG,EAC3C,MAAM5C,EAAU4C,EAAO5C,QAAQjB,IAAKuC,GAClCA,EAAErB,KAAOyC,EAAW,IAAKpB,EAAGnB,UAAWmB,EAAEnB,UAAamB,GAElDD,EAAoBrB,EAAQN,OAAQ4B,GAAMA,EAAEnB,UAAUrF,OAC5D,MAAO,IAAK8H,EAAQ5C,UAASqB,0BAS3BwB,6BAA6BC,GACnC,GAAyB,MAArBA,EAAMC,WACR,OAGF,MAAMC,EAAkC,CACtCC,KAAMH,EAAMC,WACZG,QAASJ,EAAMI,SAAW,iBAC1BC,SAAS,EACTvF,KAAMkF,EAAMlF,MAGVpB,KAAK4G,aACP5G,KAAK4G,YAAYJ,GAIrB,uBACE,UACQxG,KAAKyB,iBAAiBoF,UAAU,gBACtC,MAAOP,GACPQ,YAAiBR,EAAO,CACtBS,QAAS,sCAEXC,QAAQV,MAAM,yCAA0CA,IAI5D,aACE,UACQtG,KAAKiH,uBACLjH,KAAKkH,eACX,MAAMC,EAAsBnH,KAAKoH,yBAC7BD,IACFnH,KAAKqH,gBAAkBF,GAEzBnH,KAAKsH,iBACL,MAAOhB,GACP,MAAMiB,EACJjB,aAAiBkB,MACblB,EAAMI,QACN,iCACN1G,KAAKyH,SAASF,GACdP,QAAQV,MAAM,6CAA8CA,IAIhE,qBACE,IAAItG,KAAKG,aAAa7B,OAItB,IACE0B,KAAKkC,cAAcJ,OAAQ,EAC3B,MAAM4F,QAAgB1H,KAAK4B,QAAQzB,aAC/BuH,GAAWA,EAAQpJ,OAAS,EAC9B0B,KAAK6B,SAASC,MAAQ4F,EAEtB1H,KAAK6B,SAASC,MAAQ6F,OAAOC,OAC3BpJ,GAGJ,MAAO8H,GAGP,GAFAU,QAAQa,IAAI,+CAAgDvB,GAExDA,aAAiBwB,IAEnB,YADA9H,KAAKqG,6BAA6BC,GAID,IAA/BtG,KAAK6B,SAASC,MAAMxD,SACtB0B,KAAK6B,SAASC,MAAQ6F,OAAOC,OAC3BpJ,IAGJ,QACAwB,KAAKkC,cAAcJ,OAAQ,GAI/B,qBAAqBV,GACnB,ID7N8BA,OAC3BA,GAAwB,iBAATA,KAEE,iBAAbA,EAAKN,KACZM,EAAKN,IAAIxC,OAAS,GACK,iBAAhB8C,EAAKL,QACZ4G,OAAOC,OAAO1G,KAAY6G,SAAS3G,EAAKL,SACvB,OAAjBK,EAAKb,SACmB,iBAAjBa,EAAKb,UACXsD,MAAMC,QAAQ1C,EAAKb,YAClBa,EAAK4G,UAAqC,mBAAlB5G,EAAK4G,WCoNzBC,CAAkB7G,EAAK8G,qBACzBlI,KAAK4B,QAAQpB,kBAAkBY,EAAK8G,mBACpClI,KAAK4G,YAAcxF,EAAK8G,kBAAkBF,eACpChI,KAAKkH,eACXlH,KAAKsH,kBAEP,MAAOhB,GACP,MAAMiB,EACJjB,aAAiBkB,MAAQlB,EAAMI,QAAU,2BAC3CM,QAAQV,MAAM,iDAAkDA,GAE3DtG,KAAKmI,0BAA0BrG,OAClC9B,KAAKyH,SAASF,IAKpB,8BACEa,GAEA,IACEpI,KAAKqI,YAAW,GAChBrI,KAAKyH,SAAS,MAEd,MAAMa,QAAiBtI,KAAK4B,QAAQZ,2BAA2BoH,GAE3DpI,KAAKwB,UACPxB,KAAKwB,SAAS+G,aAAa,CACzB/F,KAAM,iCACNgE,QAAS8B,EAASE,cAGtB,MAAOlC,GACP,MAAMiB,EACJjB,aAAiBkB,MACblB,EAAMI,QACN,oCAGN,MAFA1G,KAAKyH,SAASF,GACdP,QAAQV,MAAM,kDAAmDA,GAC3DA,EACN,QACAtG,KAAKqI,YAAW,IAOpBI,UACEzI,KAAK0I,cACL1I,KAAKmI,0BAA0BrG,OAAQ,EACvC9B,KAAK4F,kBAAkB9D,MAAQ,KAC/B9B,KAAK2I,iBAAmB,KAO1BC,yBAAyBzF,GACvB,GAAIA,EAAK0F,WACP,OAGF,MAAMC,EAAStK,EAAqC2E,EAAK4F,SAASzK,QAClE,IAAKwK,EACH,OAGF,MAAMtC,EAA+B,CACnCwC,cAAe7F,EAAK4F,SAASxG,IAAI,CAACwD,EAAGkD,KAAiB,CACpDC,SAAUnD,EAAEvD,KACZ2G,UAAWpD,EAAEtC,GACb2F,SAAUN,EAAOlK,UAAUkK,EAAOzJ,eAAe4J,OAEnDI,YAAalG,EAAKM,IAEpBzD,KAAKwB,SAAS+G,aAAa,CACzB/F,KAAM,8BACNgE,YAQI8C,wBACN,MAAMnC,EAAsBnH,KAAKoH,yBAE7BD,GAAuBA,IAAwBnH,KAAKqH,kBACtDrH,KAAKqH,gBAAkBF,EACvBnH,KAAKsH,kBAIDF,yBAAwC,IAAAmC,EAAAC,EAAAC,EAAAC,EAAAC,EAC9C,MAAMC,EAAuC,QAAtBL,EAAGM,UAAIC,uBAAe,IAAAP,GAAQ,QAARC,EAAnBD,EAAqBQ,cAAM,IAAAP,GAEpD,QAFoDC,EAA3BD,EAA6B1D,KACpDkE,GAAuB,iBAAjBA,EAAEC,mBACV,IAAAR,GAAU,QAAVC,EAFyBD,EAEvBS,gBAAQ,IAAAR,GAAY,QAAZC,EAFeD,EAEbS,kBAAU,IAAAR,OAFsB,EAAnBA,EAEDS,6BAEzB,GAAyB,MAArBR,EACF,OAAO,KAGT,MAAMS,EAAiBC,SAASC,OAAOX,GAAoB,IAE3D,OAAIY,OAAOC,SAASJ,IAAmBA,EAAiB,EAC9B,IAAjBA,EAGF,KAMT3B,cACM1I,KAAK0K,cACP1K,KAAK0K,YAAYC,OACjB3K,KAAK0K,YAAc,MAGjB1K,KAAKkC,cAAcJ,QACrB9B,KAAKkC,cAAcJ,OAAQ,GAO/BwF,iBAEEtH,KAAK0I,cAGL1I,KAAK0K,YAAc1K,KAAK4B,QAAQnB,sBAC9BT,KAAKqH,gBACJjG,IACCpB,KAAKsJ,wBACLtJ,KAAK4K,4BAA4BxJ,IAElCkF,IACCU,QAAQV,MAAM,2CAA4CA,GAEtDA,aAAiBwB,KACnB9H,KAAKqG,6BAA6BC,GAG/BtG,KAAKmI,0BAA0BrG,OAClC9B,KAAKyH,SACHnB,aAAiBkB,MAAQlB,EAAMI,QAAU,yBAOnDkE,4BAA4BxJ,GAC1B,IAAKA,IAASA,EAAKyJ,SAAWzJ,EAAKA,KACjC,OAGF,IAAKyC,MAAMC,QAAQ1C,EAAKA,KAAKkB,OAC3B,OAIF,MAAMwI,EAAe3M,YAAe4M,KAAKC,UAAU5J,IACnD,GAAIpB,KAAK2I,mBAAqBmC,EAE5B,YADA9D,QAAQa,IAAI,yDAGd7H,KAAK2I,iBAAmBmC,EAExB,MAAMG,EAA+C,GAErD,IAAK,MAAM9H,KAAQ/B,EAAKA,KAAKkB,MAAO,CAClC,MAAMyG,EAAsC,GAC5C,GAAK5F,EAAK+H,aAAV,CAwBO,IAAAC,EArBP,GAAIhI,EAAKiI,oBAAsBvH,MAAMC,QAAQX,EAAKiI,oBAChD,IAAK,MAAMC,KAAMlI,EAAKiI,mBAAoB,KAAAE,EACxC,IAAI3M,EAAcwE,EAAKc,OAAS,GAG9BoH,EAAGE,kBACHF,EAAGG,WACHH,EAAGI,YACHJ,EAAGG,UAAUE,cACbL,EAAGI,WAAWC,eAEd/M,EAAc,GAAG0M,EAAGG,UAAUE,mBAAmBL,EAAGI,WAAWC,gBAGjE3C,EAAS/E,KAAK,CACZP,GAAI4H,EAAG3H,WAAa,GACpB/E,cACA8F,iBAA0B,QAAT6G,EAAAD,EAAG3G,cAAM,IAAA4G,OAAA,EAATA,EAAW3G,cAAe,GAC3CnC,KAAM6I,EAAG7I,MAAQ,iBAIrBuG,EAAS/E,KAAK,CACZP,GAAIN,EAAKO,WAAa,GACtB/E,YAAawE,EAAKc,OAAS,GAC3BQ,iBAA4B,QAAX0G,EAAAhI,EAAKuB,cAAM,IAAAyG,OAAA,EAAXA,EAAaQ,QAAS,GACvCnJ,KAAMW,EAAKX,MAAQ,YAIvByI,EAAqBjH,KAAK,CACxBP,GAAIN,EAAKO,WAAa,GACtBmF,WAAY7I,KAAKuB,UAAY4B,EAAKO,UAClCqF,cAIJ,MAAM6C,EAAW,IAAI5L,KAAKsC,MAAMR,OAC1B+J,EAAgCD,EAASE,UAC5CzN,GAAiB,uBAAXA,EAAEmE,MAGyB,IAAhCyI,EAAqB3M,QAEgB,IAAnCuN,GACFD,EAASG,OAAOF,EAA+B,IAEL,IAAnCA,EACTD,EAASC,GAAiC,CACxCrJ,KAAM,qBACNF,MAAO2I,GAGTW,EAASI,QAAQ,CACfxJ,KAAM,qBACNF,MAAO2I,IAIX,MAAMgB,EAAajM,KAAKiD,sBAAsB7B,EAAKA,KAAKkB,OAClD4J,EAAmBN,EAASE,UAC/BzN,GAAiB,mBAAXA,EAAEmE,MAGX,IAA0B,IAAtB0J,EAAyB,CAC3B,MAAMC,EAAcP,EAASM,GACvBE,EAAgBpM,KAAK+E,aAAaoH,EAAYhG,QAAS8F,GAC7DL,EAASM,GAAoB,CAC3B1J,KAAM,iBACN2D,QAASiG,QAGXR,EAAS5H,KAAK,CAAExB,KAAM,iBAAkB2D,QAAS8F,IAGnDjM,KAAKsC,MAAMR,MAAQ8J,EAEd5L,KAAKmI,0BAA0BrG,QAClC9B,KAAKmI,0BAA0BrG,OAAQ,EACnC9B,KAAKsG,MAAMxE,OACb9B,KAAKyH,SAAS,OAKpB,4BACEzH,KAAKyH,SAAS,MACdzH,KAAKmI,0BAA0BrG,OAAQ,QACjC9B,KAAKkH,eACXlH,KAAKsH","file":"14.maestro-web-sdk.esm.js","sourcesContent":["export const slugify = (str: string) =>\n str\n .toLowerCase()\n .trim()\n .replace(/[\\s\\W-]+/g, '-')\n .replace(/^-+|-+$/g, '');\n\nexport function stringHashCode(str: string): number {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n return hash;\n}\n","/**\n * @description Represents a single stream/camera listing available for multi-view\n */\nexport interface CuratedMultiviewListing {\n id: string;\n description: string;\n backgroundImage: string;\n type: string;\n}\n\n/**\n * @description Position data for a single window within a layout\n */\nexport interface LayoutPosition {\n w: number;\n h: number;\n x: number;\n y: number;\n}\n\n/**\n * @description Defines a multi-view layout configuration with positioned windows\n */\nexport interface MultiViewLayout {\n layoutId: string;\n description: string;\n positions: Record<string, LayoutPosition>;\n name: string;\n windowCount: number;\n positionsOrder: string[];\n}\n\n/**\n * @description Child listing with position for new multiview event payload (PRD: SDK to pass event to client)\n */\nexport interface NewMultiviewChildListing {\n listingId: string;\n callsign: string;\n position: LayoutPosition;\n}\n\n/**\n * @description Payload for fox-multiview:new-multiview panel event when a curated multiview is selected\n */\nexport interface NewMultiviewPayload {\n multiviewID: string;\n childListings: NewMultiviewChildListing[];\n}\n\nexport type BuildYourOwnTab = 'streams' | 'layouts';\n\n/**\n * @description Represents a single camera angle within a stream\n */\nexport type Camera = {\n id: string;\n name: string;\n isActive: boolean;\n};\n\n/**\n * @description Represents a stream with its cameras and metadata, used in Build Your Own\n */\nexport interface CustomMultiviewStream {\n listing: CuratedMultiviewListing;\n totalCameras: number;\n activeCameraCount: number;\n currentTime?: string;\n location?: string;\n cameras: Camera[];\n}\n\n/**\n * @description Available layouts organized by stream count\n */\nexport const DEFAULT_LAYOUTS_BY_LISTINGS_QUANTITY: Record<\n number,\n MultiViewLayout\n> = {\n 2: {\n layoutId: 'LR',\n description: 'Two equal-sized windows side by side',\n positions: {\n L: {\n w: 0.4766,\n h: 0.4766,\n x: 0.259,\n y: 0.5,\n },\n R: {\n w: 0.4766,\n h: 0.4766,\n x: 0.7409,\n y: 0.5,\n },\n },\n name: '50/50',\n windowCount: 2,\n positionsOrder: ['L', 'R'],\n },\n 3: {\n layoutId: 'TLTRB',\n description: 'Three equal-sized windows in T layout',\n positions: {\n B: {\n w: 0.458,\n h: 0.458,\n x: 0.5,\n y: 0.266,\n },\n TL: {\n w: 0.458,\n h: 0.458,\n x: 0.268,\n y: 0.7335,\n },\n TR: {\n w: 0.458,\n h: 0.458,\n x: 0.732,\n y: 0.7335,\n },\n },\n name: 'Triple T',\n windowCount: 3,\n positionsOrder: ['TL', 'TR', 'B'],\n },\n 4: {\n layoutId: 'TLTRBLBR',\n description: 'Four equal-sized windows in 2x2 grid',\n positions: {\n BL: {\n w: 0.4766,\n h: 0.4766,\n x: 0.259,\n y: 0.257,\n },\n BR: {\n w: 0.4766,\n h: 0.4766,\n x: 0.741,\n y: 0.257,\n },\n TL: {\n w: 0.4766,\n h: 0.4766,\n x: 0.259,\n y: 0.743,\n },\n TR: {\n w: 0.4766,\n h: 0.4766,\n x: 0.741,\n y: 0.743,\n },\n },\n name: '2x2 Grid',\n windowCount: 4,\n positionsOrder: ['TL', 'TR', 'BL', 'BR'],\n },\n};\n","import NetworkManager, {\n HttpMethod,\n} from '@/services/NetworkManager/NetworkManager';\nimport { MultiViewLayout } from '../types';\n\nconst MULTIVIEW_BASE_URL =\n 'https://qa-mvlm.api.shared.digitalvideoplatform.com';\n\nexport type ProductAPIData = {\n url: string;\n method: HttpMethod;\n headers: Record<string, string>;\n callback?: (error: ProductAPIErrorPayload) => void;\n};\n\nexport type ProductAPIErrorPayload = {\n code: number;\n message: string;\n success: false;\n data?: unknown;\n};\n\nexport type MultiViewListingRequest = {\n layoutId: string;\n listings: Array<{\n listingId: string;\n callsign: string;\n }>;\n};\n\nexport type MultiViewListingResponse = {\n multiviewId?: string;\n callbackSeconds?: number;\n};\n\nexport interface CuratedMultiviewResponse {\n status: boolean;\n data?: {\n items?: CuratedMultiviewResponseItem[];\n };\n}\n\nexport interface CuratedMultiviewResponseItem {\n entity_id?: string;\n type?: string;\n title?: string;\n is_multiview?: boolean;\n is_multiview_eligible?: boolean;\n is_sportingevent?: boolean;\n images?: {\n still?: string;\n series_list?: string;\n };\n location?: {\n city?: string;\n state?: string;\n };\n start_time?: string;\n associated_listings?: Array<{\n entity_id?: string;\n title?: string;\n }>;\n multiview?: string[];\n multiview_metadata?: CuratedMultiviewResponseItem[];\n left_team?: CuratedMultiviewResponseItemTeam;\n right_team?: CuratedMultiviewResponseItemTeam;\n}\n\ntype CuratedMultiviewResponseItemTeam = {\n abbreviation?: string;\n};\n\nexport const isProductAPIValid = (data: any): data is ProductAPIData => {\n if (!data || typeof data !== 'object') return false;\n return (\n typeof data.url === 'string' &&\n data.url.length > 0 &&\n typeof data.method === 'string' &&\n Object.values(HttpMethod).includes(data.method as HttpMethod) &&\n data.headers !== null &&\n typeof data.headers === 'object' &&\n !Array.isArray(data.headers) &&\n (!data.callback || typeof data.callback === 'function')\n );\n};\n\n/**\n * Service for handling multi-view API calls\n */\nclass MultiViewService {\n private networkManager: NetworkManager;\n private productAPI: ProductAPIData | null = null;\n\n constructor() {\n this.networkManager = new NetworkManager();\n }\n\n /**\n * Fetch available multi-view layouts\n *\n * @returns Promise resolving to layouts data\n */\n getLayouts(): Promise<MultiViewLayout[]> | null {\n if (!this.productAPI) {\n return null;\n }\n\n return this.networkManager.externalApiRequest<MultiViewLayout[]>({\n endpoint: `${MULTIVIEW_BASE_URL}/mvlm/v1/layouts`,\n headers: this.productAPI.headers,\n });\n }\n\n /**\n * Set the product API configuration\n *\n * @param productAPI - The product API endpoint, method, and headers\n */\n setProductAPIData(productAPI: ProductAPIData): void {\n this.productAPI = productAPI;\n }\n\n /**\n * Start polling curated multiviews using the product API configuration.\n * Returns null if no product API has been set.\n *\n * @param interval - Polling interval in milliseconds\n * @param onData - Callback invoked with the data on each successful poll\n * @param onError - Optional callback invoked on error\n * @returns Object with a stop function, or null if no productAPI is configured\n */\n pollCuratedMultiviews(\n interval: number,\n onData: (data: CuratedMultiviewResponse) => void,\n onError?: (error: Error) => void\n ): { stop: () => void } | null {\n if (!this.productAPI) {\n return null;\n }\n\n return this.networkManager.pollExternalApiRequest({\n endpoint: this.productAPI.url,\n interval,\n method: this.productAPI.method,\n headers: this.productAPI.headers,\n onData,\n onError,\n });\n }\n\n /**\n * Request an existing or new custom multiview.\n * If the multiview exists, the response will include a multiviewId.\n * If the multiview needs to be created, the response will include\n * callbackSeconds indicating when to retry.\n *\n * @param config - The layout ID and listings for the multiview\n * @param headers - Request headers (e.g. x-access-token, Content-Type)\n * @returns Promise resolving to the multiview listing response\n */\n getOrCreateCustomMultiview(\n config: MultiViewListingRequest,\n headers: Record<string, string> = {}\n ): Promise<MultiViewListingResponse> {\n return this.networkManager.externalApiRequest<MultiViewListingResponse>({\n endpoint: `${MULTIVIEW_BASE_URL}/mvlm/v1/mvlisting`,\n method: HttpMethod.POST,\n data: config,\n headers,\n });\n }\n}\n\nexport default MultiViewService;\n","import { ViewModel } from '@/view-models/ViewModel';\nimport { Observable } from '@/helpers/Observable';\nimport { stringHashCode } from '@/helpers/strings';\nimport {\n CuratedMultiviewListing,\n CustomMultiviewStream,\n DEFAULT_LAYOUTS_BY_LISTINGS_QUANTITY,\n MultiViewLayout,\n NewMultiviewPayload,\n} from '../types';\nimport IMaestroEventDelegate from '@/interfaces/IMaestroEventDelegate';\nimport MultiViewService, {\n CuratedMultiviewResponse,\n isProductAPIValid,\n ProductAPIErrorPayload,\n MultiViewListingRequest,\n} from '../services/MultiViewService';\nimport AnalyticsService from '@/services/AnalyticsService/AnalyticsService';\nimport { AuthError } from '@/services/NetworkManager/errors';\nimport { captureException } from '@/sentry';\nimport SDK from '@/index';\n\nconst DEFAULT_POLLING_INTERVAL = 30000;\n\nexport type CuratedMultiviewItem = {\n id: string;\n isSelected: boolean;\n listings: CuratedMultiviewListing[];\n};\n\nexport type CuratedMultiviewsItem = {\n type: 'curated-multiviews';\n items: CuratedMultiviewItem[];\n};\n\nexport type BuildYourOwnItem = {\n type: 'build-your-own';\n streams: CustomMultiviewStream[];\n};\n\nexport type MultiviewItem = CuratedMultiviewsItem | BuildYourOwnItem;\n\nexport class MultiViewViewModel extends ViewModel {\n private _layouts = new Observable<MultiViewLayout[]>([]);\n private _isPolling = new Observable<boolean>(false);\n private service: MultiViewService;\n private delegate: IMaestroEventDelegate;\n private eventId: string;\n private analyticsService: AnalyticsService;\n public isDataLoading = new Observable<boolean>(false);\n private pollingTask: { stop: () => void } | null = null;\n private pollingInterval: number = DEFAULT_POLLING_INTERVAL;\n items = new Observable<MultiviewItem[]>([]);\n private hasEverSuccessfullyLoaded = new Observable<boolean>(false);\n private onAuthError?: (payload: ProductAPIErrorPayload) => void;\n private _selectedLayoutId = new Observable<string | null>(null);\n private lastResponseHash: number | null = null;\n\n constructor(\n eventId: string,\n delegate: IMaestroEventDelegate,\n analyticsService: AnalyticsService\n ) {\n super();\n this.eventId = eventId;\n this.delegate = delegate;\n this.analyticsService = analyticsService;\n this.service = new MultiViewService();\n }\n\n getLayouts(): MultiViewLayout[] {\n return this._layouts.value;\n }\n\n getIsPolling(): Observable<boolean> {\n return this._isPolling;\n }\n\n getIsDataLoading(): Observable<boolean> {\n return this.isDataLoading;\n }\n\n getEventId(): string {\n return this.eventId;\n }\n\n private updateBuildYourOwnItem(\n updater: (item: BuildYourOwnItem) => BuildYourOwnItem\n ): void {\n this.items.value = this.items.value.map((i) =>\n i.type === 'build-your-own' ? updater(i as BuildYourOwnItem) : i\n );\n }\n\n private calculateElapsedTime(startTime: string): string {\n const elapsedMinutes = Math.floor(\n (Date.now() - new Date(startTime).getTime()) / 60000\n );\n if (elapsedMinutes < 0) return '';\n return `${elapsedMinutes}'`;\n }\n\n private buildStreamsFromItems(\n items: NonNullable<NonNullable<CuratedMultiviewResponse['data']>['items']>\n ): CustomMultiviewStream[] {\n return items\n .filter((item) => item.is_multiview_eligible === true)\n .map((item) => {\n const cameras = [\n {\n id: item.entity_id || '',\n name: 'Main Broadcast',\n isActive: true,\n },\n ];\n\n if (\n item.associated_listings &&\n Array.isArray(item.associated_listings)\n ) {\n for (const al of item.associated_listings) {\n cameras.push({\n id: al.entity_id || '',\n name: al.title || '',\n isActive: false,\n });\n }\n }\n\n const location =\n item.location?.city && item.location?.state\n ? `${item.location.city}, ${item.location.state}`\n : undefined;\n\n const currentTime = item.start_time\n ? this.calculateElapsedTime(item.start_time)\n : undefined;\n\n return {\n listing: {\n id: item.entity_id || '',\n description: item.title || '',\n backgroundImage: item.images?.series_list || '',\n type: item.type || 'unknown',\n },\n totalCameras: cameras.length,\n activeCameraCount: cameras.filter((c) => c.isActive).length,\n currentTime,\n location,\n cameras,\n };\n });\n }\n\n private mergeStreams(\n existing: CustomMultiviewStream[],\n incoming: CustomMultiviewStream[]\n ): CustomMultiviewStream[] {\n const existingMap = new Map(existing.map((s) => [s.listing.id, s]));\n\n return incoming.map((newStream) => {\n const prev = existingMap.get(newStream.listing.id);\n if (!prev) return newStream;\n\n const prevCameraMap = new Map(\n prev.cameras.map((c) => [c.id, c.isActive])\n );\n const cameras = newStream.cameras.map((c) => ({\n ...c,\n isActive: prevCameraMap.has(c.id)\n ? prevCameraMap.get(c.id)!\n : c.isActive,\n }));\n const activeCameraCount = cameras.filter((c) => c.isActive).length;\n\n return { ...newStream, cameras, activeCameraCount };\n });\n }\n\n getLayoutsObservable(): Observable<MultiViewLayout[]> {\n return this._layouts;\n }\n\n getSelectedLayoutId(): Observable<string | null> {\n return this._selectedLayoutId;\n }\n\n onSelectLayout(layoutId: string): void {\n const layout = this._layouts.value.find((l) => l.layoutId === layoutId);\n if (!layout) return;\n\n this._selectedLayoutId.value = layoutId;\n }\n\n onToggleCamera(streamId: string, cameraId: string): void {\n this.updateBuildYourOwnItem((item) => ({\n ...item,\n streams: item.streams.map((stream) => {\n if (stream.listing.id !== streamId) return stream;\n const cameras = stream.cameras.map((c) =>\n c.id === cameraId ? { ...c, isActive: !c.isActive } : c\n );\n const activeCameraCount = cameras.filter((c) => c.isActive).length;\n return { ...stream, cameras, activeCameraCount };\n }),\n }));\n }\n\n /**\n * Notify client app about a Product API auth error.\n * Uses configured callback first, and falls back to onPanelEvent.\n */\n private notifyProductAPIUnauthorized(error: AuthError): void {\n if (error.statusCode !== 401) {\n return;\n }\n\n const payload: ProductAPIErrorPayload = {\n code: error.statusCode,\n message: error.message || 'Not authorized',\n success: false,\n data: error.data,\n };\n\n if (this.onAuthError) {\n this.onAuthError(payload);\n }\n }\n\n private async trackPanelView(): Promise<void> {\n try {\n await this.analyticsService.panelView('foxMultiView');\n } catch (error) {\n captureException(error, {\n context: 'MultiViewViewModel.trackPanelView',\n });\n console.error('[MULTIVIEW] Error tracking panel view:', error);\n }\n }\n\n async init(): Promise<void> {\n try {\n await this.trackPanelView();\n await this.fetchLayouts();\n const panelConfigInterval = this.getPanelConfigInterval();\n if (panelConfigInterval) {\n this.pollingInterval = panelConfigInterval;\n }\n this.refreshPolling();\n } catch (error) {\n const errorMessage =\n error instanceof Error\n ? error.message\n : 'Failed to initialize MultiView';\n this.setError(errorMessage);\n console.error('[MultiViewViewModel] Initialization error:', error);\n }\n }\n\n async fetchLayouts(): Promise<void> {\n if (this.getLayouts().length) {\n return;\n }\n\n try {\n this.isDataLoading.value = true;\n const layouts = await this.service.getLayouts();\n if (layouts && layouts.length > 0) {\n this._layouts.value = layouts;\n } else {\n this._layouts.value = Object.values(\n DEFAULT_LAYOUTS_BY_LISTINGS_QUANTITY\n );\n }\n } catch (error) {\n console.log('[MultiViewViewModel] Error fetching layouts:', error);\n\n if (error instanceof AuthError) {\n this.notifyProductAPIUnauthorized(error);\n return;\n }\n\n if (this._layouts.value.length === 0) {\n this._layouts.value = Object.values(\n DEFAULT_LAYOUTS_BY_LISTINGS_QUANTITY\n );\n }\n } finally {\n this.isDataLoading.value = false;\n }\n }\n\n async setDataToPanel(data: Record<string, any>) {\n try {\n if (isProductAPIValid(data.productAPIRequest)) {\n this.service.setProductAPIData(data.productAPIRequest);\n this.onAuthError = data.productAPIRequest.callback;\n await this.fetchLayouts();\n this.refreshPolling();\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'Failed to set panel data';\n console.error('[MultiViewViewModel] Error setting panel data:', error);\n\n if (!this.hasEverSuccessfullyLoaded.value) {\n this.setError(errorMessage);\n }\n }\n }\n\n async onSelectCustomMultiview(\n params: MultiViewListingRequest\n ): Promise<void> {\n try {\n this.setLoading(true);\n this.setError(null);\n\n const response = await this.service.getOrCreateCustomMultiview(params);\n\n if (this.delegate) {\n this.delegate.onPanelEvent({\n type: 'fox-multiview:custom-multiview',\n payload: response.multiviewId,\n });\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error\n ? error.message\n : 'Failed to select custom multiview';\n this.setError(errorMessage);\n console.error('[MultiViewViewModel] Error selecting multiview:', error);\n throw error;\n } finally {\n this.setLoading(false);\n }\n }\n\n /**\n * Clean up resources when the ViewModel is no longer needed\n */\n cleanup(): void {\n this.stopPolling();\n this.hasEverSuccessfullyLoaded.value = false;\n this._selectedLayoutId.value = null;\n this.lastResponseHash = null;\n }\n\n /**\n * Called when a curated multiview is selected. Notifies the client via onPanelEvent\n * so the app can switch the video player to the selected multiview.\n */\n onSelectCuratedMultiview(item: CuratedMultiviewItem) {\n if (item.isSelected) {\n return;\n }\n\n const layout = DEFAULT_LAYOUTS_BY_LISTINGS_QUANTITY[item.listings.length];\n if (!layout) {\n return;\n }\n\n const payload: NewMultiviewPayload = {\n childListings: item.listings.map((l, listingIndex) => ({\n callsign: l.type,\n listingId: l.id,\n position: layout.positions[layout.positionsOrder[listingIndex]],\n })),\n multiviewID: item.id,\n };\n this.delegate.onPanelEvent({\n type: 'fox-multiview:new-multiview',\n payload,\n });\n }\n\n /**\n * @description Update polling interval from panel config.\n * Refresh polling if necessary.\n */\n private updatePollingInterval(): void {\n const panelConfigInterval = this.getPanelConfigInterval();\n\n if (panelConfigInterval && panelConfigInterval !== this.pollingInterval) {\n this.pollingInterval = panelConfigInterval;\n this.refreshPolling();\n }\n }\n\n private getPanelConfigInterval(): number | null {\n const intervalInSeconds = SDK.getPageConfig()?.panels?.find(\n (p) => p.panel_type === 'foxMultiView'\n )?.renderer?.block_data?.product_api_polling_interval;\n\n if (intervalInSeconds == null) {\n return null;\n }\n\n const parsedInterval = parseInt(String(intervalInSeconds), 10);\n\n if (Number.isFinite(parsedInterval) && parsedInterval > 0) {\n return parsedInterval * 1000; // Convert seconds to milliseconds\n }\n\n return null;\n }\n\n /**\n * Stop polling for multiview data\n */\n stopPolling(): void {\n if (this.pollingTask) {\n this.pollingTask.stop();\n this.pollingTask = null;\n }\n\n if (this.isDataLoading.value) {\n this.isDataLoading.value = false;\n }\n }\n\n /**\n * Refresh polling for curated multiviews\n */\n refreshPolling(): void {\n // First stop any existing polling\n this.stopPolling();\n\n // Start the poll loop\n this.pollingTask = this.service.pollCuratedMultiviews(\n this.pollingInterval,\n (data) => {\n this.updatePollingInterval();\n this.processCuratedMultiviewData(data);\n },\n (error) => {\n console.error('[MultiViewViewModel] Error polling data:', error);\n\n if (error instanceof AuthError) {\n this.notifyProductAPIUnauthorized(error);\n }\n\n if (!this.hasEverSuccessfullyLoaded.value) {\n this.setError(\n error instanceof Error ? error.message : 'Failed to load data'\n );\n }\n }\n );\n }\n\n processCuratedMultiviewData(data: CuratedMultiviewResponse) {\n if (!data || !data.status || !data.data) {\n return;\n }\n\n if (!Array.isArray(data.data.items)) {\n return;\n }\n\n // Calculate hash to check if data changed\n const responseHash = stringHashCode(JSON.stringify(data));\n if (this.lastResponseHash === responseHash) {\n console.log('[MULTIVIEW] Response hash unchanged - skipping update');\n return;\n }\n this.lastResponseHash = responseHash;\n\n const curatedMultiviewItem: CuratedMultiviewItem[] = [];\n\n for (const item of data.data.items) {\n const listings: CuratedMultiviewListing[] = [];\n if (!item.is_multiview) {\n continue;\n }\n if (item.multiview_metadata && Array.isArray(item.multiview_metadata)) {\n for (const mv of item.multiview_metadata) {\n let description = item.title || '';\n\n if (\n mv.is_sportingevent &&\n mv.left_team &&\n mv.right_team &&\n mv.left_team.abbreviation &&\n mv.right_team.abbreviation\n ) {\n description = `${mv.left_team.abbreviation} vs ${mv.right_team.abbreviation}`;\n }\n\n listings.push({\n id: mv.entity_id || '',\n description,\n backgroundImage: mv.images?.series_list || '',\n type: mv.type || 'unknown',\n });\n }\n } else {\n listings.push({\n id: item.entity_id || '',\n description: item.title || '',\n backgroundImage: item.images?.still || '',\n type: item.type || 'unknown',\n });\n }\n\n curatedMultiviewItem.push({\n id: item.entity_id || '',\n isSelected: this.eventId === item.entity_id,\n listings,\n });\n }\n\n const newItems = [...this.items.value];\n const existingCuratedMultiviewIndex = newItems.findIndex(\n (i) => i.type === 'curated-multiviews'\n );\n\n if (curatedMultiviewItem.length === 0) {\n // No curated multiview items — remove the section if it was previously present\n if (existingCuratedMultiviewIndex !== -1) {\n newItems.splice(existingCuratedMultiviewIndex, 1);\n }\n } else if (existingCuratedMultiviewIndex !== -1) {\n newItems[existingCuratedMultiviewIndex] = {\n type: 'curated-multiviews',\n items: curatedMultiviewItem,\n };\n } else {\n newItems.unshift({\n type: 'curated-multiviews',\n items: curatedMultiviewItem,\n });\n }\n\n const newStreams = this.buildStreamsFromItems(data.data.items);\n const existingByoIndex = newItems.findIndex(\n (i) => i.type === 'build-your-own'\n );\n\n if (existingByoIndex !== -1) {\n const existingByo = newItems[existingByoIndex] as BuildYourOwnItem;\n const mergedStreams = this.mergeStreams(existingByo.streams, newStreams);\n newItems[existingByoIndex] = {\n type: 'build-your-own',\n streams: mergedStreams,\n };\n } else {\n newItems.push({ type: 'build-your-own', streams: newStreams });\n }\n\n this.items.value = newItems;\n\n if (!this.hasEverSuccessfullyLoaded.value) {\n this.hasEverSuccessfullyLoaded.value = true;\n if (this.error.value) {\n this.setError(null);\n }\n }\n }\n\n async clearTabLoadFailure() {\n this.setError(null);\n this.hasEverSuccessfullyLoaded.value = false;\n await this.fetchLayouts();\n this.refreshPolling();\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[15],{104:function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return r}));const i=e=>e.toLowerCase().trim().replace(/[\s\W-]+/g,"-").replace(/^-+|-+$/g,"");function r(e){let t=0;for(let a=0;a<e.length;a++){t=(t<<5)-t+e.charCodeAt(a),t&=t}return t}},125:function(e,t,a){"use strict";a.r(t),a.d(t,"BuilderPanelViewModel",(function(){return o}));var i=a(3),r=a(34),n=a(4),s=a(104);function l(e,t,a){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var i=a.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}class o extends r.a{constructor(e,t){super(),l(this,"sections",new i.a([])),l(this,"expandedCardIds",new i.a(new Set)),l(this,"isDataLoading",new i.a(!1)),l(this,"hasEverSuccessfullyLoaded",new i.a(!1)),l(this,"analyticsService",null),l(this,"lastResponseHash",null),l(this,"initialized",!1),this.analyticsService=t||null,e&&this.parseBlockData(e)}async init(e){this.analyticsService&&await this.trackPanelView(),this.parseBlockData(e),this.initialized=!0}cleanup(){this.sections.value=[],this.expandedCardIds.value=new Set,this.lastResponseHash=null,this.initialized=!1}updatePanelConfig(e){this.parseBlockData(e)}async trackPanelView(){try{this.analyticsService}catch(e){Object(n.a)(e,{tags:{component:"BuilderPanelViewModel",method:"trackPanelView"}})}}parseBlockData(e){try{if(this.isDataLoading.value=!0,this.setError(null),!e)throw new Error("Panel config is required");if(!e.block_data)throw new Error("block_data is missing from panel config");const t=e.block_data;if(!t.sections)throw new Error("sections array is missing from block_data");if(!Array.isArray(t.sections))throw new Error("sections must be an array");const a=Object(s.b)(JSON.stringify(t.sections));if(a===this.lastResponseHash)return void(this.isDataLoading.value=!1);this.sections.value=this.parseSections(t.sections),this.lastResponseHash=a,this.hasEverSuccessfullyLoaded.value=!0,this.isDataLoading.value=!1}catch(t){const a=t instanceof Error?t.message:"Failed to parse block data";this.setError(a),this.isDataLoading.value=!1,Object(n.a)(t,{tags:{component:"BuilderPanelViewModel",method:"parseBlockData"},extra:{panelConfig:e}})}}toggleCardExpanded(e){const t=new Set(this.expandedCardIds.value);t.has(e)?t.delete(e):t.add(e),this.expandedCardIds.value=t}collapseAllCards(){this.expandedCardIds.value=new Set}parsePadding(e){var t,a,i,r;const n=8,s=8,l=8,o=8;return{top:null!==(t=null==e?void 0:e.top)&&void 0!==t?t:n,right:null!==(a=null==e?void 0:e.right)&&void 0!==a?a:s,bottom:null!==(i=null==e?void 0:e.bottom)&&void 0!==i?i:l,left:null!==(r=null==e?void 0:e.left)&&void 0!==r?r:o}}parseHeader(e){var t,a,i;return{content:null!==(t=null==e?void 0:e.content)&&void 0!==t?t:"",enabled:null!==(a=null==e?void 0:e.enabled)&&void 0!==a&&a,type:null!==(i=null==e?void 0:e.type)&&void 0!==i?i:"text",alt:null==e?void 0:e.alt}}parseSectionSettings(e){var t,a,i,r;return{backgroundColor:null!==(t=null==e?void 0:e.background_color)&&void 0!==t?t:"transparent",header:this.parseHeader(null==e?void 0:e.header),padding:this.parsePadding(null==e?void 0:e.padding),spacing:null!==(a=null==e?void 0:e.spacing)&&void 0!==a?a:8,sticky:null!==(i=null==e?void 0:e.sticky)&&void 0!==i&&i,textAlignment:null!==(r=null==e?void 0:e.text_alignment)&&void 0!==r?r:"left"}}parseSimpleCard(e){var t,a,i,r;return{id:e.id,type:"simple",title:null!==(t=e.title)&&void 0!==t?t:"",image:{url:null!==(a=null===(i=e.image)||void 0===i?void 0:i.url)&&void 0!==a?a:"",alt:null===(r=e.image)||void 0===r?void 0:r.alt}}}parseExpandableCard(e){var t,a,i;return{id:e.id,type:"expandable",title:null!==(t=e.title)&&void 0!==t?t:"",collapsedState:{cards:Array.isArray(null===(a=e.collapsed_state)||void 0===a?void 0:a.cards)?e.collapsed_state.cards.map(e=>this.parseSimpleCard(e)):[]},expandedState:{cards:Array.isArray(null===(i=e.expanded_state)||void 0===i?void 0:i.cards)?e.expanded_state.cards.map(e=>this.parseSimpleCard(e)):[]},settings:e.settings?this.parseSectionSettings(e.settings):void 0}}parseCard(e){if(!e||!e.id)throw new Error("Card must have an id");return"expandable"===e.type?this.parseExpandableCard(e):this.parseSimpleCard(e)}parseSection(e){var t;if(!e||!e.id)throw new Error("Section must have an id");return{id:e.id,title:null!==(t=e.title)&&void 0!==t?t:"",cards:Array.isArray(e.cards)?e.cards.map(e=>this.parseCard(e)):[],settings:this.parseSectionSettings(e.settings)}}parseSections(e){if(!Array.isArray(e))throw new Error("Sections must be an array");return e.map(e=>this.parseSection(e))}}}}]);
2
- //# sourceMappingURL=15.maestro-web-sdk.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/helpers/strings.ts","webpack:///./src/modules/maestro/builder/view-model/BuilderPanelViewModel.ts"],"names":["slugify","str","toLowerCase","trim","replace","stringHashCode","hash","i","length","charCodeAt","BuilderPanelViewModel","ViewModel","constructor","panelConfig","analyticsService","super","_defineProperty","Observable","Set","this","parseBlockData","trackPanelView","initialized","cleanup","sections","value","expandedCardIds","lastResponseHash","updatePanelConfig","error","captureException","tags","component","method","isDataLoading","setError","Error","block_data","blockData","Array","isArray","responseHash","JSON","stringify","parseSections","hasEverSuccessfullyLoaded","errorMessage","message","extra","toggleCardExpanded","cardId","currentExpandedIds","has","delete","add","collapseAllCards","parsePadding","raw","_raw$top","_raw$right","_raw$bottom","_raw$left","DEFAULT_PADDING","top","right","bottom","left","parseHeader","_raw$content","_raw$enabled","_raw$type","content","enabled","type","alt","parseSectionSettings","_raw$background_color","_raw$spacing","_raw$sticky","_raw$text_alignment","backgroundColor","background_color","header","padding","spacing","sticky","textAlignment","text_alignment","parseSimpleCard","_raw$title","_raw$image$url","_raw$image","_raw$image2","id","title","image","url","parseExpandableCard","_raw$title2","_raw$collapsed_state","_raw$expanded_state","collapsedState","cards","collapsed_state","map","card","expandedState","expanded_state","settings","undefined","parseCard","parseSection","_raw$title3","rawSections","section"],"mappings":"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","file":"15.maestro-web-sdk.esm.js","sourcesContent":["export const slugify = (str: string) =>\n str\n .toLowerCase()\n .trim()\n .replace(/[\\s\\W-]+/g, '-')\n .replace(/^-+|-+$/g, '');\n\nexport function stringHashCode(str: string): number {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n return hash;\n}\n","import { Observable } from '../../../../helpers/Observable';\nimport { ViewModel } from '../../../../view-models/ViewModel';\nimport { captureException } from '@/sentry';\nimport AnalyticsService from '@/services/AnalyticsService/AnalyticsService';\nimport { stringHashCode } from '@/helpers/strings';\nimport {\n ICard,\n IExpandableCard,\n ISection,\n ISectionSettings,\n ISimpleCard,\n} from '../types';\n\ninterface IBlockData {\n sections: any[];\n}\n\ninterface IPanelConfig {\n block_data?: IBlockData;\n id: string;\n panel_name: string;\n panel_type: string;\n icon_name?: string;\n}\n\nexport class BuilderPanelViewModel extends ViewModel {\n public sections = new Observable<ISection[]>([]);\n public expandedCardIds = new Observable<Set<string>>(new Set());\n public isDataLoading = new Observable<boolean>(false);\n public hasEverSuccessfullyLoaded = new Observable<boolean>(false);\n\n private analyticsService: AnalyticsService | null = null;\n private lastResponseHash: number | null = null;\n initialized = false;\n\n constructor(panelConfig?: IPanelConfig, analyticsService?: AnalyticsService) {\n super();\n this.analyticsService = analyticsService || null;\n\n if (panelConfig) {\n this.parseBlockData(panelConfig);\n }\n }\n\n async init(panelConfig: IPanelConfig): Promise<void> {\n if (this.analyticsService) {\n await this.trackPanelView();\n }\n this.parseBlockData(panelConfig);\n this.initialized = true;\n }\n\n cleanup(): void {\n this.sections.value = [];\n this.expandedCardIds.value = new Set();\n this.lastResponseHash = null;\n this.initialized = false;\n }\n\n updatePanelConfig(panelConfig: IPanelConfig): void {\n this.parseBlockData(panelConfig);\n }\n\n private async trackPanelView(): Promise<void> {\n try {\n if (this.analyticsService) {\n // TODO: Add builder to MaestroPanelType analytics before enabling\n // await this.analyticsService.panelView('builderBlockPanel');\n }\n } catch (error) {\n captureException(error, {\n tags: {\n component: 'BuilderPanelViewModel',\n method: 'trackPanelView',\n },\n });\n }\n }\n\n private parseBlockData(panelConfig: IPanelConfig): void {\n try {\n this.isDataLoading.value = true;\n this.setError(null);\n\n if (!panelConfig) {\n throw new Error('Panel config is required');\n }\n\n if (!panelConfig.block_data) {\n throw new Error('block_data is missing from panel config');\n }\n\n const blockData = panelConfig.block_data;\n\n if (!blockData.sections) {\n throw new Error('sections array is missing from block_data');\n }\n\n if (!Array.isArray(blockData.sections)) {\n throw new Error('sections must be an array');\n }\n\n const responseHash = stringHashCode(JSON.stringify(blockData.sections));\n if (responseHash === this.lastResponseHash) {\n this.isDataLoading.value = false;\n return;\n }\n\n // Parse the raw config into properly typed sections with camelCase\n this.sections.value = this.parseSections(blockData.sections);\n this.lastResponseHash = responseHash;\n this.hasEverSuccessfullyLoaded.value = true;\n this.isDataLoading.value = false;\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'Failed to parse block data';\n this.setError(errorMessage);\n this.isDataLoading.value = false;\n\n captureException(error, {\n tags: {\n component: 'BuilderPanelViewModel',\n method: 'parseBlockData',\n },\n extra: {\n panelConfig,\n },\n });\n }\n }\n\n toggleCardExpanded(cardId: string): void {\n const currentExpandedIds = new Set(this.expandedCardIds.value);\n\n if (currentExpandedIds.has(cardId)) {\n currentExpandedIds.delete(cardId);\n } else {\n currentExpandedIds.add(cardId);\n }\n\n this.expandedCardIds.value = currentExpandedIds;\n }\n\n collapseAllCards(): void {\n this.expandedCardIds.value = new Set();\n }\n\n private parsePadding(raw: any) {\n const DEFAULT_PADDING = { top: 8, right: 8, bottom: 8, left: 8 };\n return {\n top: raw?.top ?? DEFAULT_PADDING.top,\n right: raw?.right ?? DEFAULT_PADDING.right,\n bottom: raw?.bottom ?? DEFAULT_PADDING.bottom,\n left: raw?.left ?? DEFAULT_PADDING.left,\n };\n }\n\n private parseHeader(raw: any) {\n return {\n content: raw?.content ?? '',\n enabled: raw?.enabled ?? false,\n type: (raw?.type ?? 'text') as 'text' | 'image',\n alt: raw?.alt,\n };\n }\n\n private parseSectionSettings(raw: any): ISectionSettings {\n return {\n backgroundColor: raw?.background_color ?? 'transparent',\n header: this.parseHeader(raw?.header),\n padding: this.parsePadding(raw?.padding),\n spacing: raw?.spacing ?? 8,\n sticky: raw?.sticky ?? false,\n textAlignment: raw?.text_alignment ?? 'left',\n };\n }\n\n private parseSimpleCard(raw: any): ISimpleCard {\n return {\n id: raw.id,\n type: 'simple',\n title: raw.title ?? '',\n image: {\n url: raw.image?.url ?? '',\n alt: raw.image?.alt,\n },\n };\n }\n\n private parseExpandableCard(raw: any): IExpandableCard {\n return {\n id: raw.id,\n type: 'expandable',\n title: raw.title ?? '',\n collapsedState: {\n cards: Array.isArray(raw.collapsed_state?.cards)\n ? raw.collapsed_state.cards.map((card: any) =>\n this.parseSimpleCard(card)\n )\n : [],\n },\n expandedState: {\n cards: Array.isArray(raw.expanded_state?.cards)\n ? raw.expanded_state.cards.map((card: any) =>\n this.parseSimpleCard(card)\n )\n : [],\n },\n settings: raw.settings\n ? this.parseSectionSettings(raw.settings)\n : undefined,\n };\n }\n\n private parseCard(raw: any): ICard {\n if (!raw || !raw.id) {\n throw new Error('Card must have an id');\n }\n\n if (raw.type === 'expandable') {\n return this.parseExpandableCard(raw);\n }\n\n return this.parseSimpleCard(raw);\n }\n\n private parseSection(raw: any): ISection {\n if (!raw || !raw.id) {\n throw new Error('Section must have an id');\n }\n\n return {\n id: raw.id,\n title: raw.title ?? '',\n cards: Array.isArray(raw.cards)\n ? raw.cards.map((card: any) => this.parseCard(card))\n : [],\n settings: this.parseSectionSettings(raw.settings),\n };\n }\n\n private parseSections(rawSections: any[]): ISection[] {\n if (!Array.isArray(rawSections)) {\n throw new Error('Sections must be an array');\n }\n\n return rawSections.map((section: any) => this.parseSection(section));\n }\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[16],{120:function(e,t,i){"use strict";i.d(t,"a",(function(){return a}));const a=(e,t,i)=>{try{const a=new URL(e);return a.searchParams.set("w",t.toString()),a.searchParams.set("h",i.toString()),a.toString()}catch(t){return console.warn("Malformed URL:",e,t),e}}},234:function(e,t,i){"use strict";i.r(t);var a=i(8),l=i(3),s=i(120);function r(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var a=i.call(e,t||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}t.default=class{constructor(e){r(this,"currentlyPlayingClipIndex",new l.a(null)),r(this,"lastPlayedClipIndex",new l.a(null)),r(this,"currentClipPlaybackProgress",new l.a(null)),r(this,"errorState",new l.a("unpopulatedEvent")),r(this,"failedClips",new l.a({})),r(this,"items",new l.a([])),r(this,"filteredItems",new l.a([])),r(this,"analyticsService",void 0),this.analyticsService=e}onUpdatePlayerTimeCode(e){this.filterItemsByPlayerTimeCode(e),this.cleanErrors()}filterItemsByPlayerTimeCode(e){if(!e)return void(this.filteredItems.value=this.items.value);const t=[];for(const i of this.items.value){const a=i.items.filter(t=>this.shouldShowKeyPlay(t,e));a.length>0&&t.push({title:i.title,items:a})}this.filteredItems.value=t}shouldShowKeyPlay(e,t){if(!e.wallClock||!t)return!0;const i=new Date(t);return new Date(e.wallClock)<=i}isCurrentlyPlaying(e){return e===this.currentlyPlayingClipIndex.value}async setKeyPlays(e,t){null!==e?(this.items.value=this.parseNetworkResponse(e),this.filterItemsByPlayerTimeCode(t),this.cleanErrors()):this.errorState.value="tabLoadFailure"}cleanErrors(){"tabLoadFailure"===this.errorState.value&&(this.errorState.value=null),"unpopulatedEvent"===this.errorState.value&&this.allItems.length&&(this.errorState.value=null),this.filteredItems.value.length||(this.errorState.value="unpopulatedEvent")}async playKeyPlay(e){const t=this.allItems[e];if(!t)return void console.warn("Key play not found at index:",e);a.default.getMaestroEventViewModel().delegate.playClip(e),this.analyticsService.panelClick({type:"espnKeyPlays",name:"key_play_clicked",metadata:{action:"play clip",clip:t.clipID,key_play:t.description}})}async init(){await this.analyticsService.panelView("espnKeyPlays")}parseNetworkResponse(e){var t,i;const a=Object.values((null===(t=e.entities)||void 0===t?void 0:t.team)||{}),l=Object.values((null===(i=e.entities)||void 0===i?void 0:i.athlete)||{}),r=a.find(e=>"home"===e.homeAway),n=a.find(e=>"away"===e.homeAway),o=[],u=[];for(const t of e.sections){for(const e of t.items){const i=e.team?a.find(t=>t.id===e.team):void 0,u=e.athlete?l.find(t=>t.id===e.athlete):void 0,c=null!=i&&i.logoRef?Object(s.a)(i.logoRef,184,144):void 0,h=null!=u&&u.headshot?Object(s.a)(u.headshot,184,144):void 0,d="headshot"!==e.thumbnailType&&e.thumbnail?Object(s.a)(e.thumbnail,184,144):void 0,p=e.homeScore?e.homeScore:"0",y=e.awayScore?e.awayScore:"0",m=e.scoringPlay?parseInt(p):void 0,f=e.scoringPlay?parseInt(y):void 0,v={id:`${t.title||""}-${e.clipID}`,description:e.description?e.description:"",homeTeamName:r?r.shortName:"",awayTeamName:n?n.shortName:"",homeTeamScore:m,awayTeamScore:f,clipID:e.clipID,teamImageUrl:c,playerImageUrl:h,thumbnailImageUrl:d,section:t.title,wallClock:e.wallClock};o.push(v)}if(o.length){const e=t.title,i=u.find(t=>t.title===e);i?i.items.push(...o):u.push({title:e,items:[...o]}),o.length=0}}return u}get allItems(){return this.items.value.reduce((e,t)=>e.concat(t.items),[])}clipID(e){if(this.allItems[e])return this.allItems[e].clipID}handleKeyPlayLoadFailure(e){const t=this.clipID(e);if(t){const i=this.failedClips.value;i[t]="recentFailure",this.failedClips.value=i,setTimeout(()=>{if("recentFailure"===this.loadFailureStatus(e)){const e=this.failedClips.value;e[t]="nonRecentFailure",this.failedClips.value=e}},5e3)}}loadFailureStatus(e){const t=this.clipID(e);return this.failedClips.value&&t?this.failedClips.value[t]:"noFailure"}clearLoadFailureStatus(e){const t=this.clipID(e);t&&this.failedClips&&(this.failedClips.value={...this.failedClips.value,[t]:"noFailure"})}async userRequestedNewKeyPlaysData(){const e=a.default.getMaestroEventViewModel();await e.delegate.userRequestedNewKeyPlaysData()}}}}]);
2
- //# sourceMappingURL=16.maestro-web-sdk.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/helpers/url.ts","webpack:///./src/modules/espn/key-plays/view-model/KeyPlaysViewModel.ts"],"names":["setImageDimensions","url","width","height","urlObj","URL","searchParams","set","toString","err","console","warn","KeyPlaysViewModel","constructor","analyticsService","_defineProperty","Observable","this","onUpdatePlayerTimeCode","playerTimeCode","filterItemsByPlayerTimeCode","cleanErrors","filteredItems","value","items","item","filteredKeyPlays","filter","keyPlay","shouldShowKeyPlay","length","push","title","wallClock","timestamp","Date","isCurrentlyPlaying","index","currentlyPlayingClipIndex","parseNetworkResponse","errorState","allItems","atIndex","SDK","getMaestroEventViewModel","delegate","playClip","panelClick","type","name","metadata","action","clip","clipID","key_play","description","panelView","response","_response$entities","_response$entities2","teams","Object","values","entities","team","athletes","athlete","homeTeam","find","homeAway","awayTeam","result","section","sections","playTeam","id","undefined","a","teamImageUrl","logoRef","playerImageUrl","headshot","thumbnailImageUrl","thumbnailType","thumbnail","homeScore","awayScore","homeTeamScore","scoringPlay","parseInt","awayTeamScore","keyPlayData","homeTeamName","shortName","awayTeamName","sectionTitle","existingSection","reduce","acc","concat","forKeyPlayAtIndex","handleKeyPlayLoadFailure","newFailedClips","failedClips","setTimeout","loadFailureStatus","clearLoadFailureStatus","mevm","userRequestedNewKeyPlaysData"],"mappings":"2FAAA,kCAAO,MAAMA,EAAqBA,CAChCC,EACAC,EACAC,KAEA,IACE,MAAMC,EAAS,IAAIC,IAAIJ,GAGvB,OAFAG,EAAOE,aAAaC,IAAI,IAAKL,EAAMM,YACnCJ,EAAOE,aAAaC,IAAI,IAAKJ,EAAOK,YAC7BJ,EAAOI,WACd,MAAOC,GAEP,OADAC,QAAQC,KAAK,iBAAkBV,EAAKQ,GAC7BR,K,ggBC0PIW,UAvPf,MAUEC,YAAYC,GAAoCC,EAAA,iCATpB,IAAIC,IAA0B,OAAKD,EAAA,2BACzC,IAAIC,IAA0B,OAAKD,EAAA,mCAC3B,IAAIC,IAA0B,OAAKD,EAAA,kBACpD,IAAIC,IAAsC,qBAAmBD,EAAA,mBAC5D,IAAIC,IAAwD,KAAGD,EAAA,aACrE,IAAIC,IAA0B,KAAGD,EAAA,qBACzB,IAAIC,IAA0B,KAAGD,EAAA,gCAI/CE,KAAKH,iBAAmBA,EAG1BI,uBAAuBC,GACrBF,KAAKG,4BAA4BD,GACjCF,KAAKI,cAGCD,4BAA4BD,GAClC,IAAKA,EAEH,YADAF,KAAKK,cAAcC,MAAQN,KAAKO,MAAMD,OAIxC,MAAMD,EAA+B,GACrC,IAAK,MAAMG,KAAQR,KAAKO,MAAMD,MAAO,CACnC,MAAMG,EAAmBD,EAAKD,MAAMG,OAAQC,GAC1CX,KAAKY,kBAAkBD,EAAST,IAE9BO,EAAiBI,OAAS,GAC5BR,EAAcS,KAAK,CACjBC,MAAOP,EAAKO,MACZR,MAAOE,IAIbT,KAAKK,cAAcC,MAAQD,EAGrBO,kBACND,EACAT,GAEA,IAAKS,EAAQK,YAAcd,EACzB,OAAO,EAGT,MAAMe,EAAY,IAAIC,KAAKhB,GAE3B,OAD2B,IAAIgB,KAAKP,EAAQK,YACfC,EAG/BE,mBAAmBC,GACjB,OAAOA,IAAUpB,KAAKqB,0BAA0Bf,MAGlD,kBACEC,EACAL,GAEc,OAAVK,GAKJP,KAAKO,MAAMD,MAAQN,KAAKsB,qBAAqBf,GAC7CP,KAAKG,4BAA4BD,GACjCF,KAAKI,eANHJ,KAAKuB,WAAWjB,MAAQ,iBASpBF,cACwB,mBAA1BJ,KAAKuB,WAAWjB,QAClBN,KAAKuB,WAAWjB,MAAQ,MAGI,qBAA1BN,KAAKuB,WAAWjB,OAAgCN,KAAKwB,SAASX,SAChEb,KAAKuB,WAAWjB,MAAQ,MAGrBN,KAAKK,cAAcC,MAAMO,SAC5Bb,KAAKuB,WAAWjB,MAAQ,oBAI5B,kBAAkBmB,GAChB,MAAMd,EAAUX,KAAKwB,SAASC,GAC9B,IAAKd,EAEH,YADAlB,QAAQC,KAAK,+BAAgC+B,GAIlCC,UAAIC,2BACZC,SAASC,SAASJ,GAEvBzB,KAAKH,iBAAiBiC,WAAW,CAC/BC,KAAM,eACNC,KAAM,mBACNC,SAAU,CACRC,OAAQ,YACRC,KAAMxB,EAAQyB,OACdC,SAAU1B,EAAQ2B,eAKxB,mBACQtC,KAAKH,iBAAiB0C,UAAU,gBAGxCjB,qBAAqBkB,GAAmD,IAAAC,EAAAC,EACtE,MAAMC,EAAQC,OAAOC,QAAwB,QAAjBJ,EAAAD,EAASM,gBAAQ,IAAAL,OAAA,EAAjBA,EAAmBM,OAAQ,IACjDC,EAAWJ,OAAOC,QAAwB,QAAjBH,EAAAF,EAASM,gBAAQ,IAAAJ,OAAA,EAAjBA,EAAmBO,UAAW,IACvDC,EAAWP,EAAMQ,KAAMJ,GAA2B,SAAlBA,EAAKK,UACrCC,EAAWV,EAAMQ,KAAMJ,GAA2B,SAAlBA,EAAKK,UAErC7C,EAAoB,GACpB+C,EAAwB,GAE9B,IAAK,MAAMC,KAAWf,EAASgB,SAAU,CACvC,IAAK,MAAM7C,KAAW4C,EAAQhD,MAAO,CACnC,MAAMkD,EAAW9C,EAAQoC,KACrBJ,EAAMQ,KAAMJ,GAASA,EAAKW,KAAO/C,EAAQoC,WACzCY,EACEV,EAAUtC,EAAQsC,QACpBD,EAASG,KAAMS,GAAMA,EAAEF,KAAO/C,EAAQsC,cACtCU,EAEEE,EAAeJ,WAAUK,QAC3B/E,YAAmB0E,EAASK,QAAS,IAAK,UAC1CH,EACEI,EAAiBd,WAASe,SAC5BjF,YAAmBkE,EAAQe,SAAU,IAAK,UAC1CL,EACEM,EACsB,aAA1BtD,EAAQuD,eAAgCvD,EAAQwD,UAC5CpF,YAAmB4B,EAAQwD,UAAW,IAAK,UAC3CR,EAEAS,EAAYzD,EAAQyD,UAAYzD,EAAQyD,UAAY,IACpDC,EAAY1D,EAAQ0D,UAAY1D,EAAQ0D,UAAY,IACpDC,EAAgB3D,EAAQ4D,YAC1BC,SAASJ,QACTT,EACEc,EAAgB9D,EAAQ4D,YAC1BC,SAASH,QACTV,EAEEe,EAAwB,CAC5BhB,GAAI,GAAGH,EAAQxC,OAAS,MAAMJ,EAAQyB,SACtCE,YAAa3B,EAAQ2B,YAAc3B,EAAQ2B,YAAc,GACzDqC,aAAczB,EAAWA,EAAS0B,UAAY,GAC9CC,aAAcxB,EAAWA,EAASuB,UAAY,GAC9CN,gBACAG,gBACArC,OAAQzB,EAAQyB,OAChByB,eACAE,iBACAE,oBACAV,QAASA,EAAQxC,MACjBC,UAAWL,EAAQK,WAGrBT,EAAMO,KAAK4D,GAIb,GAAInE,EAAMM,OAAQ,CAChB,MAAMiE,EAAevB,EAAQxC,MACvBgE,EAAkBzB,EAAOH,KAC5B3C,GAASA,EAAKO,QAAU+D,GAGvBC,EACFA,EAAgBxE,MAAMO,QAAQP,GAE9B+C,EAAOxC,KAAK,CACVC,MAAO+D,EACPvE,MAAO,IAAIA,KAKfA,EAAMM,OAAS,GAInB,OAAOyC,EAGT,eACE,OAAOtD,KAAKO,MAAMD,MAAM0E,OAAO,CAACC,EAAK1B,IAC5B0B,EAAIC,OAAO3B,EAAQhD,OACzB,IAGL6B,OAAO+C,GAEL,GADanF,KAAKwB,SAAS2D,GAI3B,OAAOnF,KAAKwB,SAAS2D,GAAmB/C,OAG1CgD,yBAAyBD,GACvB,MAAM/C,EAASpC,KAAKoC,OAAO+C,GAC3B,GAAI/C,EAAQ,CACV,MAAMiD,EAAiBrF,KAAKsF,YAAYhF,MACxC+E,EAAejD,GAAU,gBAEzBpC,KAAKsF,YAAYhF,MAAQ+E,EAEzBE,WAAW,KACT,GAAkD,kBAA9CvF,KAAKwF,kBAAkBL,GAAwC,CACjE,MAAME,EAAiBrF,KAAKsF,YAAYhF,MACxC+E,EAAejD,GAAU,mBACzBpC,KAAKsF,YAAYhF,MAAQ+E,IAE1B,MAIPG,kBAAkBL,GAChB,MAAM/C,EAASpC,KAAKoC,OAAO+C,GAE3B,OADuBnF,KAAKsF,YAAYhF,OAIjC8B,EAASpC,KAAKsF,YAAYhF,MAAM8B,GAF9B,YAKXqD,uBAAuBN,GACrB,MAAM/C,EAASpC,KAAKoC,OAAO+C,GACvB/C,GAAUpC,KAAKsF,cACjBtF,KAAKsF,YAAYhF,MAAQ,IACpBN,KAAKsF,YAAYhF,MACpB,CAAC8B,GAAS,cAKhB,qCACE,MAAMsD,EAAOhE,UAAIC,iCACX+D,EAAK9D,SAAS+D","file":"16.maestro-web-sdk.esm.js","sourcesContent":["export const setImageDimensions = (\n url: string,\n width: number,\n height: number\n) => {\n try {\n const urlObj = new URL(url);\n urlObj.searchParams.set('w', width.toString());\n urlObj.searchParams.set('h', height.toString());\n return urlObj.toString();\n } catch (err) {\n console.warn('Malformed URL:', url, err);\n return url; // Return the original URL if it cannot be parsed\n }\n};\n","import SDK from '@/index';\nimport IMaestroKeyPlaysResponse from '../interfaces/IKeyPlaysResponse';\nimport IKeyPlay, {\n KeyPlayLoadFailureStatus,\n KeyPlaysErrorState,\n} from '../interfaces/IKeyPlays';\nimport { Observable } from '@/helpers/Observable';\nimport { setImageDimensions } from '@/helpers/url';\nimport AnalyticsService from '@/services/AnalyticsService/AnalyticsService';\n\nexport type KeyPlayItem = {\n title?: string;\n items: IKeyPlay[];\n};\n\nclass KeyPlaysViewModel {\n currentlyPlayingClipIndex = new Observable<number | null>(null);\n lastPlayedClipIndex = new Observable<number | null>(null);\n currentClipPlaybackProgress = new Observable<number | null>(null);\n errorState = new Observable<KeyPlaysErrorState | null>('unpopulatedEvent');\n failedClips = new Observable<{ [key: string]: KeyPlayLoadFailureStatus }>({});\n items = new Observable<KeyPlayItem[]>([]);\n filteredItems = new Observable<KeyPlayItem[]>([]);\n analyticsService: AnalyticsService;\n\n constructor(analyticsService: AnalyticsService) {\n this.analyticsService = analyticsService;\n }\n\n onUpdatePlayerTimeCode(playerTimeCode: number | null): void {\n this.filterItemsByPlayerTimeCode(playerTimeCode);\n this.cleanErrors();\n }\n\n private filterItemsByPlayerTimeCode(playerTimeCode: number | null) {\n if (!playerTimeCode) {\n this.filteredItems.value = this.items.value;\n return;\n }\n\n const filteredItems: KeyPlayItem[] = [];\n for (const item of this.items.value) {\n const filteredKeyPlays = item.items.filter((keyPlay) =>\n this.shouldShowKeyPlay(keyPlay, playerTimeCode)\n );\n if (filteredKeyPlays.length > 0) {\n filteredItems.push({\n title: item.title,\n items: filteredKeyPlays,\n });\n }\n }\n this.filteredItems.value = filteredItems;\n }\n\n private shouldShowKeyPlay(\n keyPlay: IKeyPlay,\n playerTimeCode: number | null\n ): boolean {\n if (!keyPlay.wallClock || !playerTimeCode) {\n return true;\n }\n\n const timestamp = new Date(playerTimeCode);\n const wallClockTimestamp = new Date(keyPlay.wallClock);\n return wallClockTimestamp <= timestamp;\n }\n\n isCurrentlyPlaying(index: number): boolean {\n return index === this.currentlyPlayingClipIndex.value;\n }\n\n async setKeyPlays(\n items: IMaestroKeyPlaysResponse | null,\n playerTimeCode: number | null\n ): Promise<void> {\n if (items === null) {\n this.errorState.value = 'tabLoadFailure';\n return;\n }\n\n this.items.value = this.parseNetworkResponse(items);\n this.filterItemsByPlayerTimeCode(playerTimeCode);\n this.cleanErrors();\n }\n\n private cleanErrors() {\n if (this.errorState.value === 'tabLoadFailure') {\n this.errorState.value = null;\n }\n\n if (this.errorState.value === 'unpopulatedEvent' && this.allItems.length) {\n this.errorState.value = null;\n }\n\n if (!this.filteredItems.value.length) {\n this.errorState.value = 'unpopulatedEvent';\n }\n }\n\n async playKeyPlay(atIndex: number): Promise<void> {\n const keyPlay = this.allItems[atIndex];\n if (!keyPlay) {\n console.warn('Key play not found at index:', atIndex);\n return;\n }\n\n const mevm = SDK.getMaestroEventViewModel();\n mevm.delegate.playClip(atIndex);\n\n this.analyticsService.panelClick({\n type: 'espnKeyPlays',\n name: 'key_play_clicked',\n metadata: {\n action: 'play clip',\n clip: keyPlay.clipID,\n key_play: keyPlay.description,\n },\n });\n }\n\n async init() {\n await this.analyticsService.panelView('espnKeyPlays');\n }\n\n parseNetworkResponse(response: IMaestroKeyPlaysResponse): KeyPlayItem[] {\n const teams = Object.values(response.entities?.team || {});\n const athletes = Object.values(response.entities?.athlete || {});\n const homeTeam = teams.find((team) => team.homeAway === 'home');\n const awayTeam = teams.find((team) => team.homeAway === 'away');\n\n const items: IKeyPlay[] = [];\n const result: KeyPlayItem[] = [];\n\n for (const section of response.sections) {\n for (const keyPlay of section.items) {\n const playTeam = keyPlay.team\n ? teams.find((team) => team.id === keyPlay.team)\n : undefined;\n const athlete = keyPlay.athlete\n ? athletes.find((a) => a.id === keyPlay.athlete)\n : undefined;\n\n const teamImageUrl = playTeam?.logoRef\n ? setImageDimensions(playTeam.logoRef, 184, 144)\n : undefined;\n const playerImageUrl = athlete?.headshot\n ? setImageDimensions(athlete.headshot, 184, 144)\n : undefined;\n const thumbnailImageUrl =\n keyPlay.thumbnailType !== 'headshot' && keyPlay.thumbnail\n ? setImageDimensions(keyPlay.thumbnail, 184, 144)\n : undefined;\n\n const homeScore = keyPlay.homeScore ? keyPlay.homeScore : '0';\n const awayScore = keyPlay.awayScore ? keyPlay.awayScore : '0';\n const homeTeamScore = keyPlay.scoringPlay\n ? parseInt(homeScore)\n : undefined;\n const awayTeamScore = keyPlay.scoringPlay\n ? parseInt(awayScore)\n : undefined;\n\n const keyPlayData: IKeyPlay = {\n id: `${section.title || ''}-${keyPlay.clipID}`,\n description: keyPlay.description ? keyPlay.description : '',\n homeTeamName: homeTeam ? homeTeam.shortName : '',\n awayTeamName: awayTeam ? awayTeam.shortName : '',\n homeTeamScore,\n awayTeamScore,\n clipID: keyPlay.clipID,\n teamImageUrl,\n playerImageUrl,\n thumbnailImageUrl,\n section: section.title,\n wallClock: keyPlay.wallClock,\n };\n\n items.push(keyPlayData);\n }\n\n // Only add the section if it has items\n if (items.length) {\n const sectionTitle = section.title;\n const existingSection = result.find(\n (item) => item.title === sectionTitle\n );\n\n if (existingSection) {\n existingSection.items.push(...items);\n } else {\n result.push({\n title: sectionTitle,\n items: [...items],\n });\n }\n\n // Reset items for the next section\n items.length = 0;\n }\n }\n\n return result;\n }\n\n get allItems() {\n return this.items.value.reduce((acc, section) => {\n return acc.concat(section.items);\n }, [] as IKeyPlay[]);\n }\n\n clipID(forKeyPlayAtIndex: number): string | undefined {\n const item = this.allItems[forKeyPlayAtIndex];\n if (!item) {\n return undefined;\n }\n return this.allItems[forKeyPlayAtIndex].clipID;\n }\n\n handleKeyPlayLoadFailure(forKeyPlayAtIndex: number): void {\n const clipID = this.clipID(forKeyPlayAtIndex);\n if (clipID) {\n const newFailedClips = this.failedClips.value;\n newFailedClips[clipID] = 'recentFailure';\n\n this.failedClips.value = newFailedClips;\n\n setTimeout(() => {\n if (this.loadFailureStatus(forKeyPlayAtIndex) === 'recentFailure') {\n const newFailedClips = this.failedClips.value;\n newFailedClips[clipID] = 'nonRecentFailure';\n this.failedClips.value = newFailedClips;\n }\n }, 5000);\n }\n }\n\n loadFailureStatus(forKeyPlayAtIndex: number): KeyPlayLoadFailureStatus {\n const clipID = this.clipID(forKeyPlayAtIndex);\n const newFailedClips = this.failedClips.value;\n if (!newFailedClips) {\n return 'noFailure';\n }\n return clipID ? this.failedClips.value[clipID] : 'noFailure';\n }\n\n clearLoadFailureStatus(forKeyPlayAtIndex: number): void {\n const clipID = this.clipID(forKeyPlayAtIndex);\n if (clipID && this.failedClips) {\n this.failedClips.value = {\n ...this.failedClips.value,\n [clipID]: 'noFailure',\n };\n }\n }\n\n async userRequestedNewKeyPlaysData() {\n const mevm = SDK.getMaestroEventViewModel();\n await mevm.delegate.userRequestedNewKeyPlaysData();\n }\n}\n\nexport default KeyPlaysViewModel;\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[17],{98:function(e,t,n){"use strict";n.r(t);var w=n(0),i=n.n(w);t.default=e=>i.a.createElement("svg",{width:e.width,height:e.height,viewBox:"0 0 21 21",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i.a.createElement("path",{d:"M10.5 1V20M1 10.5H20",stroke:"#FFFFFF",strokeWidth:"2",strokeLinecap:"round"}))}}]);
2
- //# sourceMappingURL=17.maestro-web-sdk.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/components/atoms/SvgIcon/AddIcon.tsx"],"names":["AddIcon","props","React","createElement","width","height","viewBox","fill","xmlns","d","stroke","strokeWidth","strokeLinecap"],"mappings":"0FAAA,2BAsBeA,UAnBEC,GAEbC,IAAAC,cAAA,OACEC,MAAOH,EAAMG,MACbC,OAAQJ,EAAMI,OACdC,QAAQ,YACRC,KAAK,OACLC,MAAM,8BAENN,IAAAC,cAAA,QACEM,EAAE,uBACFC,OAAO,UACPC,YAAY,IACZC,cAAc","file":"17.maestro-web-sdk.esm.js","sourcesContent":["import React from 'react';\nimport { IconProps } from './Icon';\n\nconst AddIcon = (props: IconProps) => {\n return (\n <svg\n width={props.width}\n height={props.height}\n viewBox=\"0 0 21 21\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.5 1V20M1 10.5H20\"\n stroke=\"#FFFFFF\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n};\n\nexport default AddIcon;\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[18],{79:function(e,t,V){"use strict";V.r(t);var l=V(0),H=V.n(l);t.default=e=>H.a.createElement("svg",{width:e.width,height:e.height,viewBox:"0 0 72 72",fill:"none",xmlns:"http://www.w3.org/2000/svg"},H.a.createElement("path",{d:"M38.25 43.2954H33V38.25H38.25V43.2954Z",fill:"#9D9E9F"}),H.a.createElement("path",{d:"M28.5 28.7045V33.75H23.25V28.7045H28.5Z",fill:"#9D9E9F"}),H.a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M54.75 12.75H6.75V52.5C6.75 56.2279 9.77208 59.25 13.5 59.25H58.5C62.2279 59.25 65.25 56.2279 65.25 52.5V17.25H59.25V50.25C59.25 51.4926 58.2426 52.5 57 52.5C55.7574 52.5 54.75 51.4926 54.75 50.25V12.75ZM28.5 51V47.7954H23.16C20.7244 47.7954 18.75 45.821 18.75 43.3854V41.9659H23.25V43.2954H28.5V38.25H23.16C20.7244 38.25 18.75 36.2756 18.75 33.84V28.6145C18.75 26.179 20.7244 24.2045 23.16 24.2045H28.5V21H33V24.2045H38.34C40.7756 24.2045 42.75 26.179 42.75 28.6145V30.0341H38.25V28.7045H33V33.75H38.34C40.7756 33.75 42.75 35.7244 42.75 38.16V43.3854C42.75 45.821 40.7756 47.7954 38.34 47.7954H33V51H28.5Z",fill:"#9D9E9F"}))}}]);
2
- //# sourceMappingURL=18.maestro-web-sdk.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/components/atoms/SvgIcon/BetsIcon.tsx"],"names":["BetsIcon","props","React","createElement","width","height","viewBox","fill","xmlns","d","fillRule","clipRule"],"mappings":"0FAAA,2BAuBeA,UArBGC,GAEdC,IAAAC,cAAA,OACEC,MAAOH,EAAMG,MACbC,OAAQJ,EAAMI,OACdC,QAAQ,YACRC,KAAK,OACLC,MAAM,8BAENN,IAAAC,cAAA,QAAMM,EAAE,yCAAyCF,KAAK,YACtDL,IAAAC,cAAA,QAAMM,EAAE,0CAA0CF,KAAK,YACvDL,IAAAC,cAAA,QACEO,SAAS,UACTC,SAAS,UACTF,EAAE,imBACFF,KAAK","file":"18.maestro-web-sdk.esm.js","sourcesContent":["import React from 'react';\nimport { IconProps } from './Icon';\nconst BetsIcon = (props: IconProps) => {\n return (\n <svg\n width={props.width}\n height={props.height}\n viewBox=\"0 0 72 72\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M38.25 43.2954H33V38.25H38.25V43.2954Z\" fill=\"#9D9E9F\" />\n <path d=\"M28.5 28.7045V33.75H23.25V28.7045H28.5Z\" fill=\"#9D9E9F\" />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M54.75 12.75H6.75V52.5C6.75 56.2279 9.77208 59.25 13.5 59.25H58.5C62.2279 59.25 65.25 56.2279 65.25 52.5V17.25H59.25V50.25C59.25 51.4926 58.2426 52.5 57 52.5C55.7574 52.5 54.75 51.4926 54.75 50.25V12.75ZM28.5 51V47.7954H23.16C20.7244 47.7954 18.75 45.821 18.75 43.3854V41.9659H23.25V43.2954H28.5V38.25H23.16C20.7244 38.25 18.75 36.2756 18.75 33.84V28.6145C18.75 26.179 20.7244 24.2045 23.16 24.2045H28.5V21H33V24.2045H38.34C40.7756 24.2045 42.75 26.179 42.75 28.6145V30.0341H38.25V28.7045H33V33.75H38.34C40.7756 33.75 42.75 35.7244 42.75 38.16V43.3854C42.75 45.821 40.7756 47.7954 38.34 47.7954H33V51H28.5Z\"\n fill=\"#9D9E9F\"\n />\n </svg>\n );\n};\n\nexport default BetsIcon;\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (window.webpackJsonp=window.webpackJsonp||[]).push([[19],{87:function(e,t,n){"use strict";n.r(t);var s=n(0),o=n.n(s);class i extends o.a.Component{constructor(e){super(e)}render(){return o.a.createElement("svg",{width:this.props.width,height:this.props.height,viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o.a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3 16C3 8.8203 8.8203 3 16 3C23.1797 3 29 8.8203 29 16C29 23.1797 23.1797 29 16 29C8.8203 29 3 23.1797 3 16ZM14.6001 12.0668H17.4001V9.26676H14.6001V12.0668ZM17.3333 22.6667V14H14.6667V22.6667H17.3333Z",fill:"#FFB759"}))}}t.default=i}}]);
2
- //# sourceMappingURL=19.maestro-web-sdk.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///./src/components/atoms/SvgIcon/BetsWarningIcon.tsx"],"names":["BetsWarningIcon","React","Component","constructor","props","super","render","createElement","width","this","height","viewBox","fill","xmlns","fillRule","clipRule","d"],"mappings":"0FAAA,2BAGA,MAAMA,UAAwBC,IAAMC,UAClCC,YAAYC,GACVC,MAAMD,GAGRE,SACE,OACEL,IAAAM,cAAA,OACEC,MAAOC,KAAKL,MAAMI,MAClBE,OAAQD,KAAKL,MAAMM,OACnBC,QAAQ,YACRC,KAAK,OACLC,MAAM,8BAENZ,IAAAM,cAAA,QACEO,SAAS,UACTC,SAAS,UACTC,EAAE,4MACFJ,KAAK,cAOAZ","file":"19.maestro-web-sdk.esm.js","sourcesContent":["import React from 'react';\nimport { IconProps } from './Icon';\n\nclass BetsWarningIcon extends React.Component<IconProps> {\n constructor(props: IconProps) {\n super(props);\n }\n\n render() {\n return (\n <svg\n width={this.props.width}\n height={this.props.height}\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3 16C3 8.8203 8.8203 3 16 3C23.1797 3 29 8.8203 29 16C29 23.1797 23.1797 29 16 29C8.8203 29 3 23.1797 3 16ZM14.6001 12.0668H17.4001V9.26676H14.6001V12.0668ZM17.3333 22.6667V14H14.6667V22.6667H17.3333Z\"\n fill=\"#FFB759\"\n />\n </svg>\n );\n }\n}\n\nexport default BetsWarningIcon;\n"],"sourceRoot":""}