@maestro_io/maestro-web-sdk 5.2.0 → 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.
- package/README.md +25 -0
- package/dist/index.d.ts +7 -6
- package/dist/maestro-web-sdk.esm.js +1 -10
- package/dist/maestro-web-sdk.esm.js.map +1 -1
- package/dist/maestro-web-sdk.umd.js +1 -10
- package/dist/maestro-web-sdk.umd.js.map +1 -1
- package/package.json +32 -33
- package/dist/1.maestro-web-sdk.esm.js +0 -2
- package/dist/1.maestro-web-sdk.esm.js.map +0 -1
- package/dist/10.maestro-web-sdk.esm.js +0 -2
- package/dist/10.maestro-web-sdk.esm.js.map +0 -1
- package/dist/11.maestro-web-sdk.esm.js +0 -2
- package/dist/11.maestro-web-sdk.esm.js.map +0 -1
- package/dist/12.maestro-web-sdk.esm.js +0 -2
- package/dist/12.maestro-web-sdk.esm.js.map +0 -1
- package/dist/13.maestro-web-sdk.esm.js +0 -2
- package/dist/13.maestro-web-sdk.esm.js.map +0 -1
- package/dist/14.maestro-web-sdk.esm.js +0 -2
- package/dist/14.maestro-web-sdk.esm.js.map +0 -1
- package/dist/15.maestro-web-sdk.esm.js +0 -2
- package/dist/15.maestro-web-sdk.esm.js.map +0 -1
- package/dist/16.maestro-web-sdk.esm.js +0 -2
- package/dist/16.maestro-web-sdk.esm.js.map +0 -1
- package/dist/17.maestro-web-sdk.esm.js +0 -2
- package/dist/17.maestro-web-sdk.esm.js.map +0 -1
- package/dist/18.maestro-web-sdk.esm.js +0 -2
- package/dist/18.maestro-web-sdk.esm.js.map +0 -1
- package/dist/19.maestro-web-sdk.esm.js +0 -2
- package/dist/19.maestro-web-sdk.esm.js.map +0 -1
- package/dist/2.maestro-web-sdk.esm.js +0 -2
- package/dist/2.maestro-web-sdk.esm.js.map +0 -1
- package/dist/20.maestro-web-sdk.esm.js +0 -2
- package/dist/20.maestro-web-sdk.esm.js.map +0 -1
- package/dist/21.maestro-web-sdk.esm.js +0 -2
- package/dist/21.maestro-web-sdk.esm.js.map +0 -1
- package/dist/22.maestro-web-sdk.esm.js +0 -2
- package/dist/22.maestro-web-sdk.esm.js.map +0 -1
- package/dist/23.maestro-web-sdk.esm.js +0 -2
- package/dist/23.maestro-web-sdk.esm.js.map +0 -1
- package/dist/24.maestro-web-sdk.esm.js +0 -2
- package/dist/24.maestro-web-sdk.esm.js.map +0 -1
- package/dist/25.maestro-web-sdk.esm.js +0 -2
- package/dist/25.maestro-web-sdk.esm.js.map +0 -1
- package/dist/26.maestro-web-sdk.esm.js +0 -2
- package/dist/26.maestro-web-sdk.esm.js.map +0 -1
- package/dist/27.maestro-web-sdk.esm.js +0 -2
- package/dist/27.maestro-web-sdk.esm.js.map +0 -1
- package/dist/28.maestro-web-sdk.esm.js +0 -2
- package/dist/28.maestro-web-sdk.esm.js.map +0 -1
- package/dist/29.maestro-web-sdk.esm.js +0 -2
- package/dist/29.maestro-web-sdk.esm.js.map +0 -1
- package/dist/3.maestro-web-sdk.esm.js +0 -2
- package/dist/3.maestro-web-sdk.esm.js.map +0 -1
- package/dist/30.maestro-web-sdk.esm.js +0 -2
- package/dist/30.maestro-web-sdk.esm.js.map +0 -1
- package/dist/31.maestro-web-sdk.esm.js +0 -2
- package/dist/31.maestro-web-sdk.esm.js.map +0 -1
- package/dist/32.maestro-web-sdk.esm.js +0 -2
- package/dist/32.maestro-web-sdk.esm.js.map +0 -1
- package/dist/33.maestro-web-sdk.esm.js +0 -2
- package/dist/33.maestro-web-sdk.esm.js.map +0 -1
- package/dist/34.maestro-web-sdk.esm.js +0 -2
- package/dist/34.maestro-web-sdk.esm.js.map +0 -1
- package/dist/35.maestro-web-sdk.esm.js +0 -2
- package/dist/35.maestro-web-sdk.esm.js.map +0 -1
- package/dist/36.maestro-web-sdk.esm.js +0 -2
- package/dist/36.maestro-web-sdk.esm.js.map +0 -1
- package/dist/37.maestro-web-sdk.esm.js +0 -2
- package/dist/37.maestro-web-sdk.esm.js.map +0 -1
- package/dist/38.maestro-web-sdk.esm.js +0 -2
- package/dist/38.maestro-web-sdk.esm.js.map +0 -1
- package/dist/39.maestro-web-sdk.esm.js +0 -2
- package/dist/39.maestro-web-sdk.esm.js.map +0 -1
- package/dist/4.maestro-web-sdk.esm.js +0 -2
- package/dist/4.maestro-web-sdk.esm.js.map +0 -1
- package/dist/40.maestro-web-sdk.esm.js +0 -2
- package/dist/40.maestro-web-sdk.esm.js.map +0 -1
- package/dist/5.maestro-web-sdk.esm.js +0 -2
- package/dist/5.maestro-web-sdk.esm.js.map +0 -1
- package/dist/6.maestro-web-sdk.esm.js +0 -2
- package/dist/6.maestro-web-sdk.esm.js.map +0 -1
- package/dist/7.maestro-web-sdk.esm.js +0 -2
- package/dist/7.maestro-web-sdk.esm.js.map +0 -1
- package/dist/8.maestro-web-sdk.esm.js +0 -2
- package/dist/8.maestro-web-sdk.esm.js.map +0 -1
- package/dist/9.maestro-web-sdk.esm.js +0 -2
- package/dist/9.maestro-web-sdk.esm.js.map +0 -1
- package/dist/package.json +0 -94
- package/dist/src/components/atoms/BaseButton/BaseButton.d.ts +0 -7
- package/dist/src/components/atoms/BaseButton/BaseButton.js +0 -11
- package/dist/src/components/atoms/BaseButton/index.d.ts +0 -2
- package/dist/src/components/atoms/BaseButton/index.js +0 -2
- package/dist/src/components/atoms/Image/index.d.ts +0 -13
- package/dist/src/components/atoms/Image/index.js +0 -34
- package/dist/src/components/atoms/Rive/index.d.ts +0 -221
- package/dist/src/components/atoms/Rive/index.js +0 -53
- package/dist/src/components/atoms/SvgIcon/AddIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/AddIcon.js +0 -6
- package/dist/src/components/atoms/SvgIcon/BetGeneralIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/BetGeneralIcon.js +0 -9
- package/dist/src/components/atoms/SvgIcon/BetsIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/BetsIcon.js +0 -8
- package/dist/src/components/atoms/SvgIcon/BetsWarningIcon.d.ts +0 -7
- package/dist/src/components/atoms/SvgIcon/BetsWarningIcon.js +0 -11
- package/dist/src/components/atoms/SvgIcon/BuilderIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/BuilderIcon.js +0 -8
- package/dist/src/components/atoms/SvgIcon/ChatIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/ChatIcon.js +0 -6
- package/dist/src/components/atoms/SvgIcon/CheckmarkIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/CheckmarkIcon.js +0 -6
- package/dist/src/components/atoms/SvgIcon/CollapseIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/CollapseIcon.js +0 -6
- package/dist/src/components/atoms/SvgIcon/ExpandIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/ExpandIcon.js +0 -6
- package/dist/src/components/atoms/SvgIcon/FantasyIcon.d.ts +0 -7
- package/dist/src/components/atoms/SvgIcon/FantasyIcon.js +0 -15
- package/dist/src/components/atoms/SvgIcon/FlameIcon.d.ts +0 -7
- package/dist/src/components/atoms/SvgIcon/FlameIcon.js +0 -11
- package/dist/src/components/atoms/SvgIcon/FoxKeyPlaysIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/FoxKeyPlaysIcon.js +0 -7
- package/dist/src/components/atoms/SvgIcon/FoxMultiViewIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/FoxMultiViewIcon.js +0 -10
- package/dist/src/components/atoms/SvgIcon/FoxStatsIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/FoxStatsIcon.js +0 -7
- package/dist/src/components/atoms/SvgIcon/HelloWorldIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/HelloWorldIcon.js +0 -6
- package/dist/src/components/atoms/SvgIcon/Icon.d.ts +0 -15
- package/dist/src/components/atoms/SvgIcon/Icon.js +0 -70
- package/dist/src/components/atoms/SvgIcon/KeyPlaysIcon.d.ts +0 -6
- package/dist/src/components/atoms/SvgIcon/KeyPlaysIcon.js +0 -10
- package/dist/src/components/atoms/SvgIcon/MobilePhoneIcon.d.ts +0 -7
- package/dist/src/components/atoms/SvgIcon/MobilePhoneIcon.js +0 -11
- package/dist/src/components/atoms/SvgIcon/PlayIcon.d.ts +0 -6
- package/dist/src/components/atoms/SvgIcon/PlayIcon.js +0 -8
- package/dist/src/components/atoms/SvgIcon/ShopIcon.d.ts +0 -5
- package/dist/src/components/atoms/SvgIcon/ShopIcon.js +0 -7
- package/dist/src/components/atoms/SvgIcon/ShopifyIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/ShopifyIcon.js +0 -6
- package/dist/src/components/atoms/SvgIcon/StatsIcon.d.ts +0 -6
- package/dist/src/components/atoms/SvgIcon/StatsIcon.js +0 -12
- package/dist/src/components/atoms/SvgIcon/TimesIcon.d.ts +0 -3
- package/dist/src/components/atoms/SvgIcon/TimesIcon.js +0 -6
- package/dist/src/components/atoms/SvgIcon/WarningIcon.d.ts +0 -6
- package/dist/src/components/atoms/SvgIcon/WarningIcon.js +0 -8
- package/dist/src/components/atoms/SvgIcon/index.d.ts +0 -2
- package/dist/src/components/atoms/SvgIcon/index.js +0 -2
- package/dist/src/components/core/App/App.d.ts +0 -11
- package/dist/src/components/core/App/App.js +0 -35
- package/dist/src/components/core/App/index.d.ts +0 -2
- package/dist/src/components/core/App/index.js +0 -2
- package/dist/src/components/core/PanelManager/PanelManager.d.ts +0 -21
- package/dist/src/components/core/PanelManager/PanelManager.js +0 -104
- package/dist/src/components/core/PanelManager/index.d.ts +0 -2
- package/dist/src/components/core/PanelManager/index.js +0 -2
- package/dist/src/components/core/ScrollableContainer/FocusableItem.d.ts +0 -11
- package/dist/src/components/core/ScrollableContainer/FocusableItem.js +0 -24
- package/dist/src/components/core/ScrollableContainer/ScrollableContainer.d.ts +0 -54
- package/dist/src/components/core/ScrollableContainer/ScrollableContainer.js +0 -111
- package/dist/src/components/core/ScrollableContainer/index.d.ts +0 -6
- package/dist/src/components/core/ScrollableContainer/index.js +0 -5
- package/dist/src/components/core/ScrollableContainer/useScrollableContainer.d.ts +0 -14
- package/dist/src/components/core/ScrollableContainer/useScrollableContainer.js +0 -22
- package/dist/src/components/molecules/ActionButton/ActionButton.d.ts +0 -96
- package/dist/src/components/molecules/ActionButton/ActionButton.js +0 -15
- package/dist/src/components/molecules/ActionButton/index.d.ts +0 -2
- package/dist/src/components/molecules/ActionButton/index.js +0 -2
- package/dist/src/components/molecules/HeadshotImage/HeadshotImage.d.ts +0 -16
- package/dist/src/components/molecules/HeadshotImage/HeadshotImage.js +0 -50
- package/dist/src/components/molecules/HeadshotImage/index.d.ts +0 -2
- package/dist/src/components/molecules/HeadshotImage/index.js +0 -2
- package/dist/src/components/molecules/NetworkDialog/NetworkDialog.d.ts +0 -11
- package/dist/src/components/molecules/NetworkDialog/NetworkDialog.js +0 -34
- package/dist/src/components/molecules/NetworkDialog/index.d.ts +0 -2
- package/dist/src/components/molecules/NetworkDialog/index.js +0 -2
- package/dist/src/components/molecules/NetworkError/NetworkError.d.ts +0 -104
- package/dist/src/components/molecules/NetworkError/NetworkError.js +0 -26
- package/dist/src/components/molecules/NetworkError/index.d.ts +0 -2
- package/dist/src/components/molecules/NetworkError/index.js +0 -2
- package/dist/src/components/molecules/PanelNavButton/PanelNavButton.d.ts +0 -107
- package/dist/src/components/molecules/PanelNavButton/PanelNavButton.js +0 -36
- package/dist/src/components/molecules/PanelNavButton/index.d.ts +0 -2
- package/dist/src/components/molecules/PanelNavButton/index.js +0 -2
- package/dist/src/components/molecules/SegmentButton/SegmentButton.d.ts +0 -9
- package/dist/src/components/molecules/SegmentButton/SegmentButton.js +0 -10
- package/dist/src/components/molecules/SegmentButton/index.d.ts +0 -2
- package/dist/src/components/molecules/SegmentButton/index.js +0 -2
- package/dist/src/components/molecules/TabLoadError/TabLoadError.d.ts +0 -96
- package/dist/src/components/molecules/TabLoadError/TabLoadError.js +0 -14
- package/dist/src/components/molecules/TabLoadError/index.d.ts +0 -2
- package/dist/src/components/molecules/TabLoadError/index.js +0 -2
- package/dist/src/components/molecules/WatchButton/WatchButton.d.ts +0 -10
- package/dist/src/components/molecules/WatchButton/WatchButton.js +0 -15
- package/dist/src/components/molecules/WatchButton/index.d.ts +0 -2
- package/dist/src/components/molecules/WatchButton/index.js +0 -2
- package/dist/src/components/organisms/PanelNavigation/PanelNavigation.d.ts +0 -17
- package/dist/src/components/organisms/PanelNavigation/PanelNavigation.js +0 -64
- package/dist/src/components/organisms/PanelNavigation/index.d.ts +0 -2
- package/dist/src/components/organisms/PanelNavigation/index.js +0 -2
- package/dist/src/components/organisms/SegmentController/SegmentController.d.ts +0 -12
- package/dist/src/components/organisms/SegmentController/SegmentController.js +0 -35
- package/dist/src/components/organisms/SegmentController/index.d.ts +0 -3
- package/dist/src/components/organisms/SegmentController/index.js +0 -2
- package/dist/src/development/MaestroEventDelegate.d.ts +0 -27
- package/dist/src/development/MaestroEventDelegate.js +0 -110
- package/dist/src/development/TimeSeek.d.ts +0 -22
- package/dist/src/development/TimeSeek.js +0 -218
- package/dist/src/development/development.d.ts +0 -1
- package/dist/src/development/development.js +0 -39
- package/dist/src/external/AxiosNetworkClient.d.ts +0 -28
- package/dist/src/external/AxiosNetworkClient.js +0 -110
- package/dist/src/external/LocalStorageCacheManager.d.ts +0 -65
- package/dist/src/external/LocalStorageCacheManager.js +0 -213
- package/dist/src/external/ReactRenderer.d.ts +0 -17
- package/dist/src/external/ReactRenderer.js +0 -66
- package/dist/src/external/mocks/MockExternalNetworkClient.d.ts +0 -104
- package/dist/src/external/mocks/MockExternalNetworkClient.js +0 -187
- package/dist/src/external/ports/cacheManager.d.ts +0 -17
- package/dist/src/external/ports/cacheManager.js +0 -1
- package/dist/src/external/ports/networkClient.d.ts +0 -19
- package/dist/src/external/ports/networkClient.js +0 -1
- package/dist/src/external/ports/renderer.d.ts +0 -4
- package/dist/src/external/ports/renderer.js +0 -1
- package/dist/src/external/spatial-navigation/__mocks__/withFocusable.d.ts +0 -8
- package/dist/src/external/spatial-navigation/__mocks__/withFocusable.js +0 -7
- package/dist/src/external/spatial-navigation/index.d.ts +0 -4
- package/dist/src/external/spatial-navigation/index.js +0 -3
- package/dist/src/external/spatial-navigation/measureLayout.d.ts +0 -2
- package/dist/src/external/spatial-navigation/measureLayout.js +0 -30
- package/dist/src/external/spatial-navigation/spatialNavigation.d.ts +0 -160
- package/dist/src/external/spatial-navigation/spatialNavigation.js +0 -944
- package/dist/src/external/spatial-navigation/utils.d.ts +0 -22
- package/dist/src/external/spatial-navigation/utils.js +0 -6
- package/dist/src/external/spatial-navigation/visualDebugger.d.ts +0 -17
- package/dist/src/external/spatial-navigation/visualDebugger.js +0 -76
- package/dist/src/external/spatial-navigation/withFocusable.d.ts +0 -131
- package/dist/src/external/spatial-navigation/withFocusable.js +0 -254
- package/dist/src/helpers/Observable.d.ts +0 -12
- package/dist/src/helpers/Observable.js +0 -37
- package/dist/src/helpers/site.d.ts +0 -1
- package/dist/src/helpers/site.js +0 -6
- package/dist/src/helpers/siteConfig.d.ts +0 -1
- package/dist/src/helpers/siteConfig.js +0 -5
- package/dist/src/helpers/strings.d.ts +0 -2
- package/dist/src/helpers/strings.js +0 -14
- package/dist/src/helpers/url.d.ts +0 -1
- package/dist/src/helpers/url.js +0 -12
- package/dist/src/hooks/useMaxHeightToBottom.d.ts +0 -11
- package/dist/src/hooks/useMaxHeightToBottom.js +0 -48
- package/dist/src/index.d.ts +0 -53
- package/dist/src/index.js +0 -197
- package/dist/src/interfaces/IMaestroEvent.d.ts +0 -108
- package/dist/src/interfaces/IMaestroEvent.js +0 -1
- package/dist/src/interfaces/IMaestroEventDelegate.d.ts +0 -81
- package/dist/src/interfaces/IMaestroEventDelegate.js +0 -1
- package/dist/src/interfaces/IMaestroManager.d.ts +0 -81
- package/dist/src/interfaces/IMaestroManager.js +0 -1
- package/dist/src/interfaces/IUserSettings.d.ts +0 -44
- package/dist/src/interfaces/IUserSettings.js +0 -20
- package/dist/src/models/IModel.d.ts +0 -7
- package/dist/src/models/IModel.js +0 -1
- package/dist/src/models/IPanel.d.ts +0 -19
- package/dist/src/models/IPanel.js +0 -12
- package/dist/src/models/ITheme.d.ts +0 -77
- package/dist/src/models/ITheme.js +0 -20
- package/dist/src/modules/espn/bets/interfaces/IBets.d.ts +0 -192
- package/dist/src/modules/espn/bets/interfaces/IBets.js +0 -1
- package/dist/src/modules/espn/bets/interfaces/IBetsViewModel.d.ts +0 -5
- package/dist/src/modules/espn/bets/interfaces/IBetsViewModel.js +0 -1
- package/dist/src/modules/espn/bets/mocks.d.ts +0 -2
- package/dist/src/modules/espn/bets/mocks.js +0 -573
- package/dist/src/modules/espn/bets/services/BetsService.d.ts +0 -81
- package/dist/src/modules/espn/bets/services/BetsService.js +0 -123
- package/dist/src/modules/espn/bets/types/BetsAnalyticsTypes.d.ts +0 -8
- package/dist/src/modules/espn/bets/types/BetsAnalyticsTypes.js +0 -1
- package/dist/src/modules/espn/bets/view/BetsView.d.ts +0 -30
- package/dist/src/modules/espn/bets/view/BetsView.js +0 -169
- package/dist/src/modules/espn/bets/view/HotProps/HotPropsView.d.ts +0 -103
- package/dist/src/modules/espn/bets/view/HotProps/HotPropsView.js +0 -133
- package/dist/src/modules/espn/bets/view/SixPack/SixPackView.d.ts +0 -9
- package/dist/src/modules/espn/bets/view/SixPack/SixPackView.js +0 -77
- package/dist/src/modules/espn/bets/view/UserBets/BetResult/BetResult.d.ts +0 -6
- package/dist/src/modules/espn/bets/view/UserBets/BetResult/BetResult.js +0 -6
- package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCard.d.ts +0 -104
- package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCard.js +0 -140
- package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCardEvent.d.ts +0 -16
- package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCardEvent.js +0 -8
- package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCardFooter.d.ts +0 -7
- package/dist/src/modules/espn/bets/view/UserBets/BetsCard/BetsCardFooter.js +0 -18
- package/dist/src/modules/espn/bets/view/UserBets/Boost/Boost.d.ts +0 -7
- package/dist/src/modules/espn/bets/view/UserBets/Boost/Boost.js +0 -6
- package/dist/src/modules/espn/bets/view/UserBets/OutcomeBadge/OutcomeBadge.d.ts +0 -6
- package/dist/src/modules/espn/bets/view/UserBets/OutcomeBadge/OutcomeBadge.js +0 -9
- package/dist/src/modules/espn/bets/view/UserBets/Parlay/Parlay.d.ts +0 -8
- package/dist/src/modules/espn/bets/view/UserBets/Parlay/Parlay.js +0 -13
- package/dist/src/modules/espn/bets/view/UserBets/Straight/Straight.d.ts +0 -7
- package/dist/src/modules/espn/bets/view/UserBets/Straight/Straight.js +0 -6
- package/dist/src/modules/espn/bets/view/UserBets/Teaser/Teaser.d.ts +0 -7
- package/dist/src/modules/espn/bets/view/UserBets/Teaser/Teaser.js +0 -13
- package/dist/src/modules/espn/bets/view/UserBets/UserBetsView.d.ts +0 -25
- package/dist/src/modules/espn/bets/view/UserBets/UserBetsView.js +0 -107
- package/dist/src/modules/espn/bets/view/components/Bet/Bet.d.ts +0 -10
- package/dist/src/modules/espn/bets/view/components/Bet/Bet.js +0 -41
- package/dist/src/modules/espn/bets/view/components/BetPill/BetPill.d.ts +0 -6
- package/dist/src/modules/espn/bets/view/components/BetPill/BetPill.js +0 -6
- package/dist/src/modules/espn/bets/view/components/BetsCard/BetsCard.d.ts +0 -10
- package/dist/src/modules/espn/bets/view/components/BetsCard/BetsCard.js +0 -24
- package/dist/src/modules/espn/bets/view/components/BetsCard/BetsCardHeader.d.ts +0 -16
- package/dist/src/modules/espn/bets/view/components/BetsCard/BetsCardHeader.js +0 -20
- package/dist/src/modules/espn/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.d.ts +0 -7
- package/dist/src/modules/espn/bets/view/components/GamblingDisclaimer/GamblingDisclaimer.js +0 -31
- package/dist/src/modules/espn/bets/view/components/GamblingDisclaimer/index.d.ts +0 -1
- package/dist/src/modules/espn/bets/view/components/GamblingDisclaimer/index.js +0 -1
- package/dist/src/modules/espn/bets/view/components/LocationWarning/LocationWarning.d.ts +0 -10
- package/dist/src/modules/espn/bets/view/components/LocationWarning/LocationWarning.js +0 -16
- package/dist/src/modules/espn/bets/view/components/PromoCodeBanner/PromoCodeBanner.d.ts +0 -5
- package/dist/src/modules/espn/bets/view/components/PromoCodeBanner/PromoCodeBanner.js +0 -45
- package/dist/src/modules/espn/bets/view/components/PromoCodeBanner/index.d.ts +0 -1
- package/dist/src/modules/espn/bets/view/components/PromoCodeBanner/index.js +0 -1
- package/dist/src/modules/espn/bets/view-model/BetsViewModel.d.ts +0 -218
- package/dist/src/modules/espn/bets/view-model/BetsViewModel.js +0 -947
- package/dist/src/modules/espn/components/TabLoadError/TabLoadError.d.ts +0 -96
- package/dist/src/modules/espn/components/TabLoadError/TabLoadError.js +0 -14
- package/dist/src/modules/espn/components/TabLoadError/index.d.ts +0 -2
- package/dist/src/modules/espn/components/TabLoadError/index.js +0 -2
- package/dist/src/modules/espn/fantasy/components/ExpandedAthleteList/ExpandedAthletesList.d.ts +0 -28
- package/dist/src/modules/espn/fantasy/components/ExpandedAthleteList/ExpandedAthletesList.js +0 -107
- package/dist/src/modules/espn/fantasy/components/ExpandedAthleteList/index.d.ts +0 -1
- package/dist/src/modules/espn/fantasy/components/ExpandedAthleteList/index.js +0 -1
- package/dist/src/modules/espn/fantasy/components/LeagueCard/LeagueCard.d.ts +0 -104
- package/dist/src/modules/espn/fantasy/components/LeagueCard/LeagueCard.js +0 -20
- package/dist/src/modules/espn/fantasy/components/LeagueCard/index.d.ts +0 -2
- package/dist/src/modules/espn/fantasy/components/LeagueCard/index.js +0 -2
- package/dist/src/modules/espn/fantasy/components/TopPlayerCard/TopPlayerCard.d.ts +0 -101
- package/dist/src/modules/espn/fantasy/components/TopPlayerCard/TopPlayerCard.js +0 -29
- package/dist/src/modules/espn/fantasy/components/TopPlayerCard/index.d.ts +0 -2
- package/dist/src/modules/espn/fantasy/components/TopPlayerCard/index.js +0 -2
- package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/TournamentOverflowQR.d.ts +0 -103
- package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/TournamentOverflowQR.js +0 -28
- package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/index.d.ts +0 -1
- package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/index.js +0 -1
- package/dist/src/modules/espn/fantasy/mocks.d.ts +0 -7620
- package/dist/src/modules/espn/fantasy/mocks.js +0 -3682
- package/dist/src/modules/espn/fantasy/services/FantasyService.d.ts +0 -76
- package/dist/src/modules/espn/fantasy/services/FantasyService.js +0 -124
- package/dist/src/modules/espn/fantasy/types.d.ts +0 -294
- package/dist/src/modules/espn/fantasy/types.js +0 -9
- package/dist/src/modules/espn/fantasy/view/ActiveAthletesMarquee/ActiveAthletesMarquee.d.ts +0 -21
- package/dist/src/modules/espn/fantasy/view/ActiveAthletesMarquee/ActiveAthletesMarquee.js +0 -74
- package/dist/src/modules/espn/fantasy/view/ActiveAthletesMarquee/index.d.ts +0 -2
- package/dist/src/modules/espn/fantasy/view/ActiveAthletesMarquee/index.js +0 -2
- package/dist/src/modules/espn/fantasy/view/FantasyHeaderView.d.ts +0 -8
- package/dist/src/modules/espn/fantasy/view/FantasyHeaderView.js +0 -8
- package/dist/src/modules/espn/fantasy/view/FantasyItemView.d.ts +0 -8
- package/dist/src/modules/espn/fantasy/view/FantasyItemView.js +0 -48
- package/dist/src/modules/espn/fantasy/view/FantasyView.d.ts +0 -34
- package/dist/src/modules/espn/fantasy/view/FantasyView.js +0 -212
- package/dist/src/modules/espn/fantasy/view/InactiveLeague/DraftDateCountdown.d.ts +0 -23
- package/dist/src/modules/espn/fantasy/view/InactiveLeague/DraftDateCountdown.js +0 -95
- package/dist/src/modules/espn/fantasy/view/InactiveLeague/InactiveLeague.d.ts +0 -100
- package/dist/src/modules/espn/fantasy/view/InactiveLeague/InactiveLeague.js +0 -13
- package/dist/src/modules/espn/fantasy/view/InactiveLeague/index.d.ts +0 -2
- package/dist/src/modules/espn/fantasy/view/InactiveLeague/index.js +0 -2
- package/dist/src/modules/espn/fantasy/view/LoginView/LoginView.d.ts +0 -96
- package/dist/src/modules/espn/fantasy/view/LoginView/LoginView.js +0 -27
- package/dist/src/modules/espn/fantasy/view/LoginView/index.d.ts +0 -2
- package/dist/src/modules/espn/fantasy/view/LoginView/index.js +0 -2
- package/dist/src/modules/espn/fantasy/view/MatchupPair/DoubleAthleteCard/DoubleAthleteCard.d.ts +0 -97
- package/dist/src/modules/espn/fantasy/view/MatchupPair/DoubleAthleteCard/DoubleAthleteCard.js +0 -25
- package/dist/src/modules/espn/fantasy/view/MatchupPair/DoubleAthleteCard/index.d.ts +0 -2
- package/dist/src/modules/espn/fantasy/view/MatchupPair/DoubleAthleteCard/index.js +0 -2
- package/dist/src/modules/espn/fantasy/view/MatchupPair/ExpandedDoubleAthleteCards.d.ts +0 -14
- package/dist/src/modules/espn/fantasy/view/MatchupPair/ExpandedDoubleAthleteCards.js +0 -9
- package/dist/src/modules/espn/fantasy/view/MatchupPair/MatchupPair.d.ts +0 -102
- package/dist/src/modules/espn/fantasy/view/MatchupPair/MatchupPair.js +0 -118
- package/dist/src/modules/espn/fantasy/view/MatchupPair/index.d.ts +0 -2
- package/dist/src/modules/espn/fantasy/view/MatchupPair/index.js +0 -2
- package/dist/src/modules/espn/fantasy/view/MatchupSingle/ExpandedSingleAthleteCards.d.ts +0 -14
- package/dist/src/modules/espn/fantasy/view/MatchupSingle/ExpandedSingleAthleteCards.js +0 -9
- package/dist/src/modules/espn/fantasy/view/MatchupSingle/MatchupSingle.d.ts +0 -102
- package/dist/src/modules/espn/fantasy/view/MatchupSingle/MatchupSingle.js +0 -108
- package/dist/src/modules/espn/fantasy/view/MatchupSingle/SingleAthleteCard/SingleAthleteCard.d.ts +0 -97
- package/dist/src/modules/espn/fantasy/view/MatchupSingle/SingleAthleteCard/SingleAthleteCard.js +0 -18
- package/dist/src/modules/espn/fantasy/view/MatchupSingle/SingleAthleteCard/index.d.ts +0 -2
- package/dist/src/modules/espn/fantasy/view/MatchupSingle/SingleAthleteCard/index.js +0 -2
- package/dist/src/modules/espn/fantasy/view/MatchupSingle/index.d.ts +0 -2
- package/dist/src/modules/espn/fantasy/view/MatchupSingle/index.js +0 -2
- package/dist/src/modules/espn/fantasy/view/PromoView/PromoView.d.ts +0 -100
- package/dist/src/modules/espn/fantasy/view/PromoView/PromoView.js +0 -12
- package/dist/src/modules/espn/fantasy/view/PromoView/index.d.ts +0 -2
- package/dist/src/modules/espn/fantasy/view/PromoView/index.js +0 -2
- package/dist/src/modules/espn/fantasy/view/TournamentBracketCard/TournamentBracketCard.d.ts +0 -101
- package/dist/src/modules/espn/fantasy/view/TournamentBracketCard/TournamentBracketCard.js +0 -37
- package/dist/src/modules/espn/fantasy/view/TournamentBracketCard/index.d.ts +0 -2
- package/dist/src/modules/espn/fantasy/view/TournamentBracketCard/index.js +0 -2
- package/dist/src/modules/espn/fantasy/view/index.d.ts +0 -2
- package/dist/src/modules/espn/fantasy/view/index.js +0 -2
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.FantasyPolling.d.ts +0 -32
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.FantasyPolling.js +0 -132
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.LeagueManagerPolling.d.ts +0 -32
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.LeagueManagerPolling.js +0 -141
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.TournamentPolling.d.ts +0 -32
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.TournamentPolling.js +0 -140
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.d.ts +0 -167
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.js +0 -805
- package/dist/src/modules/espn/key-plays/constants.d.ts +0 -3
- package/dist/src/modules/espn/key-plays/constants.js +0 -292
- package/dist/src/modules/espn/key-plays/interfaces/IKeyPlays.d.ts +0 -32
- package/dist/src/modules/espn/key-plays/interfaces/IKeyPlays.js +0 -14
- package/dist/src/modules/espn/key-plays/interfaces/IKeyPlaysResponse.d.ts +0 -44
- package/dist/src/modules/espn/key-plays/interfaces/IKeyPlaysResponse.js +0 -1
- package/dist/src/modules/espn/key-plays/interfaces/IKeyPlaysViewModel.d.ts +0 -17
- package/dist/src/modules/espn/key-plays/interfaces/IKeyPlaysViewModel.js +0 -1
- package/dist/src/modules/espn/key-plays/view/KeyPlayCardScoreTagView.d.ts +0 -9
- package/dist/src/modules/espn/key-plays/view/KeyPlayCardScoreTagView.js +0 -16
- package/dist/src/modules/espn/key-plays/view/KeyPlayCardView.d.ts +0 -27
- package/dist/src/modules/espn/key-plays/view/KeyPlayCardView.js +0 -115
- package/dist/src/modules/espn/key-plays/view/KeyPlayErrorStateView.d.ts +0 -13
- package/dist/src/modules/espn/key-plays/view/KeyPlayErrorStateView.js +0 -65
- package/dist/src/modules/espn/key-plays/view/KeyPlaysView.d.ts +0 -39
- package/dist/src/modules/espn/key-plays/view/KeyPlaysView.js +0 -179
- package/dist/src/modules/espn/key-plays/view-model/KeyPlaysViewModel.d.ts +0 -37
- package/dist/src/modules/espn/key-plays/view-model/KeyPlaysViewModel.js +0 -245
- package/dist/src/modules/espn/shop/mocks.d.ts +0 -22
- package/dist/src/modules/espn/shop/mocks.js +0 -391
- package/dist/src/modules/espn/shop/services/ShopService.d.ts +0 -23
- package/dist/src/modules/espn/shop/services/ShopService.js +0 -44
- package/dist/src/modules/espn/shop/types.d.ts +0 -164
- package/dist/src/modules/espn/shop/types.js +0 -7
- package/dist/src/modules/espn/shop/view/ProductDetailView/ProductDetailView.d.ts +0 -10
- package/dist/src/modules/espn/shop/view/ProductDetailView/ProductDetailView.js +0 -60
- package/dist/src/modules/espn/shop/view/ProductDetailView/index.d.ts +0 -2
- package/dist/src/modules/espn/shop/view/ProductDetailView/index.js +0 -2
- package/dist/src/modules/espn/shop/view/ShopView.d.ts +0 -38
- package/dist/src/modules/espn/shop/view/ShopView.js +0 -223
- package/dist/src/modules/espn/shop/view/components/BrowseCard/BrowseCard.d.ts +0 -103
- package/dist/src/modules/espn/shop/view/components/BrowseCard/BrowseCard.js +0 -23
- package/dist/src/modules/espn/shop/view/components/BrowseCard/index.d.ts +0 -2
- package/dist/src/modules/espn/shop/view/components/BrowseCard/index.js +0 -2
- package/dist/src/modules/espn/shop/view/components/ProductSummaryCard/ProductSummaryCard.d.ts +0 -104
- package/dist/src/modules/espn/shop/view/components/ProductSummaryCard/ProductSummaryCard.js +0 -26
- package/dist/src/modules/espn/shop/view/components/ProductSummaryCard/index.d.ts +0 -2
- package/dist/src/modules/espn/shop/view/components/ProductSummaryCard/index.js +0 -1
- package/dist/src/modules/espn/shop/view/components/ShopPromoView/ShopPromoView.d.ts +0 -8
- package/dist/src/modules/espn/shop/view/components/ShopPromoView/ShopPromoView.js +0 -19
- package/dist/src/modules/espn/shop/view/components/ShopPromoView/index.d.ts +0 -1
- package/dist/src/modules/espn/shop/view/components/ShopPromoView/index.js +0 -1
- package/dist/src/modules/espn/shop/view/components/ShopSection/ShopSection.d.ts +0 -12
- package/dist/src/modules/espn/shop/view/components/ShopSection/ShopSection.js +0 -34
- package/dist/src/modules/espn/shop/view/components/ShopSection/index.d.ts +0 -1
- package/dist/src/modules/espn/shop/view/components/ShopSection/index.js +0 -1
- package/dist/src/modules/espn/shop/view/index.d.ts +0 -2
- package/dist/src/modules/espn/shop/view/index.js +0 -2
- package/dist/src/modules/espn/shop/view-model/ShopViewModel.ShopPolling.d.ts +0 -31
- package/dist/src/modules/espn/shop/view-model/ShopViewModel.ShopPolling.js +0 -111
- package/dist/src/modules/espn/shop/view-model/ShopViewModel.d.ts +0 -73
- package/dist/src/modules/espn/shop/view-model/ShopViewModel.js +0 -323
- package/dist/src/modules/espn/stats/components/TeamStatistic.d.ts +0 -16
- package/dist/src/modules/espn/stats/components/TeamStatistic.js +0 -13
- package/dist/src/modules/espn/stats/interfaces/IStats.d.ts +0 -330
- package/dist/src/modules/espn/stats/interfaces/IStats.js +0 -46
- package/dist/src/modules/espn/stats/interfaces/IStatsViewModel.d.ts +0 -7
- package/dist/src/modules/espn/stats/interfaces/IStatsViewModel.js +0 -1
- package/dist/src/modules/espn/stats/mocks.d.ts +0 -2
- package/dist/src/modules/espn/stats/mocks.js +0 -746
- package/dist/src/modules/espn/stats/services/StatsService.d.ts +0 -54
- package/dist/src/modules/espn/stats/services/StatsService.js +0 -155
- package/dist/src/modules/espn/stats/utils/driveSummaryUtils.d.ts +0 -18
- package/dist/src/modules/espn/stats/utils/driveSummaryUtils.js +0 -48
- package/dist/src/modules/espn/stats/utils/playerStatusUtils.d.ts +0 -4
- package/dist/src/modules/espn/stats/utils/playerStatusUtils.js +0 -17
- package/dist/src/modules/espn/stats/utils.d.ts +0 -39
- package/dist/src/modules/espn/stats/utils.js +0 -62
- package/dist/src/modules/espn/stats/view/ActiveAthletes/ActiveAthletes.d.ts +0 -22
- package/dist/src/modules/espn/stats/view/ActiveAthletes/ActiveAthletes.js +0 -98
- package/dist/src/modules/espn/stats/view/ActiveAthletes/CollapsedAthletes/CollapsedAthletes.d.ts +0 -4
- package/dist/src/modules/espn/stats/view/ActiveAthletes/CollapsedAthletes/CollapsedAthletes.js +0 -27
- package/dist/src/modules/espn/stats/view/ActiveAthletes/ExpandedAthletes/ExpandedAthletes.d.ts +0 -22
- package/dist/src/modules/espn/stats/view/ActiveAthletes/ExpandedAthletes/ExpandedAthletes.js +0 -89
- package/dist/src/modules/espn/stats/view/ActiveAthletes/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/ActiveAthletes/index.js +0 -2
- package/dist/src/modules/espn/stats/view/CareerMatchup/CareerMatchup.d.ts +0 -101
- package/dist/src/modules/espn/stats/view/CareerMatchup/CareerMatchup.js +0 -59
- package/dist/src/modules/espn/stats/view/CareerMatchup/index.d.ts +0 -1
- package/dist/src/modules/espn/stats/view/CareerMatchup/index.js +0 -1
- package/dist/src/modules/espn/stats/view/DriveSummary/DrivePlayCard.d.ts +0 -105
- package/dist/src/modules/espn/stats/view/DriveSummary/DrivePlayCard.js +0 -32
- package/dist/src/modules/espn/stats/view/DriveSummary/DriveSummary.d.ts +0 -10
- package/dist/src/modules/espn/stats/view/DriveSummary/DriveSummary.js +0 -40
- package/dist/src/modules/espn/stats/view/DriveSummary/ExpandedItems/DriveSummaryExpanded.d.ts +0 -27
- package/dist/src/modules/espn/stats/view/DriveSummary/ExpandedItems/DriveSummaryExpanded.js +0 -129
- package/dist/src/modules/espn/stats/view/DriveSummary/Header/DriveSummaryHeader.d.ts +0 -12
- package/dist/src/modules/espn/stats/view/DriveSummary/Header/DriveSummaryHeader.js +0 -26
- package/dist/src/modules/espn/stats/view/DriveSummary/MainStat/MainStat.d.ts +0 -10
- package/dist/src/modules/espn/stats/view/DriveSummary/MainStat/MainStat.js +0 -24
- package/dist/src/modules/espn/stats/view/DriveSummary/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/DriveSummary/index.js +0 -2
- package/dist/src/modules/espn/stats/view/GameLeaders/GameLeaders.d.ts +0 -9
- package/dist/src/modules/espn/stats/view/GameLeaders/GameLeaders.js +0 -22
- package/dist/src/modules/espn/stats/view/GameLeaders/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/GameLeaders/index.js +0 -2
- package/dist/src/modules/espn/stats/view/MatchPredictor/DonutChart/DonutChart.d.ts +0 -17
- package/dist/src/modules/espn/stats/view/MatchPredictor/DonutChart/DonutChart.js +0 -55
- package/dist/src/modules/espn/stats/view/MatchPredictor/DonutChart/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/MatchPredictor/DonutChart/index.js +0 -1
- package/dist/src/modules/espn/stats/view/MatchPredictor/MatchPredictorView.d.ts +0 -100
- package/dist/src/modules/espn/stats/view/MatchPredictor/MatchPredictorView.js +0 -60
- package/dist/src/modules/espn/stats/view/MatchPredictor/index.d.ts +0 -3
- package/dist/src/modules/espn/stats/view/MatchPredictor/index.js +0 -2
- package/dist/src/modules/espn/stats/view/Penalties/Penalties.d.ts +0 -9
- package/dist/src/modules/espn/stats/view/Penalties/Penalties.js +0 -6
- package/dist/src/modules/espn/stats/view/Penalties/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/Penalties/index.js +0 -2
- package/dist/src/modules/espn/stats/view/PlayerSeasonStats/ExpandedPlayerStats.d.ts +0 -16
- package/dist/src/modules/espn/stats/view/PlayerSeasonStats/ExpandedPlayerStats.js +0 -66
- package/dist/src/modules/espn/stats/view/PlayerSeasonStats/PlayerSeasonStatsCard.d.ts +0 -99
- package/dist/src/modules/espn/stats/view/PlayerSeasonStats/PlayerSeasonStatsCard.js +0 -26
- package/dist/src/modules/espn/stats/view/PlayerSeasonStats/PlayerSeasonStatsMinified.d.ts +0 -6
- package/dist/src/modules/espn/stats/view/PlayerSeasonStats/PlayerSeasonStatsMinified.js +0 -17
- package/dist/src/modules/espn/stats/view/PlayerSeasonStats/PlayerSeasonStatsView.d.ts +0 -8
- package/dist/src/modules/espn/stats/view/PlayerSeasonStats/PlayerSeasonStatsView.js +0 -165
- package/dist/src/modules/espn/stats/view/PlayerSeasonStats/index.d.ts +0 -1
- package/dist/src/modules/espn/stats/view/PlayerSeasonStats/index.js +0 -1
- package/dist/src/modules/espn/stats/view/RecentGames/RecentGames.d.ts +0 -100
- package/dist/src/modules/espn/stats/view/RecentGames/RecentGames.js +0 -23
- package/dist/src/modules/espn/stats/view/RecentGames/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/RecentGames/index.js +0 -2
- package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/ExpandedScores.d.ts +0 -30
- package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/ExpandedScores.js +0 -123
- package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/ExpandedSummary.d.ts +0 -100
- package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/ExpandedSummary.js +0 -24
- package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/ScoringSummary/ExpandedScores/index.js +0 -2
- package/dist/src/modules/espn/stats/view/ScoringSummary/ScoreItem/ScoreItem.d.ts +0 -100
- package/dist/src/modules/espn/stats/view/ScoringSummary/ScoreItem/ScoreItem.js +0 -62
- package/dist/src/modules/espn/stats/view/ScoringSummary/ScoreItem/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/ScoringSummary/ScoreItem/index.js +0 -2
- package/dist/src/modules/espn/stats/view/ScoringSummary/ScoresSection/ScoresSection.d.ts +0 -6
- package/dist/src/modules/espn/stats/view/ScoringSummary/ScoresSection/ScoresSection.js +0 -23
- package/dist/src/modules/espn/stats/view/ScoringSummary/ScoresSection/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/ScoringSummary/ScoresSection/index.js +0 -2
- package/dist/src/modules/espn/stats/view/ScoringSummary/ScoringSummary.d.ts +0 -12
- package/dist/src/modules/espn/stats/view/ScoringSummary/ScoringSummary.js +0 -167
- package/dist/src/modules/espn/stats/view/ScoringSummary/index.d.ts +0 -1
- package/dist/src/modules/espn/stats/view/ScoringSummary/index.js +0 -1
- package/dist/src/modules/espn/stats/view/StatsItemView.d.ts +0 -8
- package/dist/src/modules/espn/stats/view/StatsItemView.js +0 -66
- package/dist/src/modules/espn/stats/view/StatsQRCode/StatsQRCodeView.d.ts +0 -100
- package/dist/src/modules/espn/stats/view/StatsQRCode/StatsQRCodeView.js +0 -36
- package/dist/src/modules/espn/stats/view/StatsQRCode/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/StatsQRCode/index.js +0 -1
- package/dist/src/modules/espn/stats/view/StatsView.d.ts +0 -29
- package/dist/src/modules/espn/stats/view/StatsView.js +0 -164
- package/dist/src/modules/espn/stats/view/TeamStats/TeamStatsView.d.ts +0 -101
- package/dist/src/modules/espn/stats/view/TeamStats/TeamStatsView.js +0 -77
- package/dist/src/modules/espn/stats/view/TeamStats/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/TeamStats/index.js +0 -1
- package/dist/src/modules/espn/stats/view/Teams/StatsCarousel.d.ts +0 -25
- package/dist/src/modules/espn/stats/view/Teams/StatsCarousel.js +0 -83
- package/dist/src/modules/espn/stats/view/Teams/StatsProgressBar.d.ts +0 -6
- package/dist/src/modules/espn/stats/view/Teams/StatsProgressBar.js +0 -19
- package/dist/src/modules/espn/stats/view/Teams/Teams.d.ts +0 -100
- package/dist/src/modules/espn/stats/view/Teams/Teams.js +0 -39
- package/dist/src/modules/espn/stats/view/Teams/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/Teams/index.js +0 -2
- package/dist/src/modules/espn/stats/view/WinProbability/WinProbability.d.ts +0 -100
- package/dist/src/modules/espn/stats/view/WinProbability/WinProbability.js +0 -28
- package/dist/src/modules/espn/stats/view/WinProbability/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/WinProbability/index.js +0 -2
- package/dist/src/modules/espn/stats/view/components/AthletesStatistics/AthletesStatistics.d.ts +0 -115
- package/dist/src/modules/espn/stats/view/components/AthletesStatistics/AthletesStatistics.js +0 -89
- package/dist/src/modules/espn/stats/view/components/AthletesStatistics/StatisticTable.d.ts +0 -3
- package/dist/src/modules/espn/stats/view/components/AthletesStatistics/StatisticTable.js +0 -12
- package/dist/src/modules/espn/stats/view/components/AthletesStatistics/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/components/AthletesStatistics/index.js +0 -2
- package/dist/src/modules/espn/stats/view/index.d.ts +0 -2
- package/dist/src/modules/espn/stats/view/index.js +0 -2
- package/dist/src/modules/espn/stats/view-model/StatsViewModel.d.ts +0 -322
- package/dist/src/modules/espn/stats/view-model/StatsViewModel.js +0 -1416
- package/dist/src/modules/fox/components/TabLoadError/TabLoadError.d.ts +0 -96
- package/dist/src/modules/fox/components/TabLoadError/TabLoadError.js +0 -19
- package/dist/src/modules/fox/components/TabLoadError/index.d.ts +0 -2
- package/dist/src/modules/fox/components/TabLoadError/index.js +0 -2
- package/dist/src/modules/fox/key-plays/view/FoxKeyPlays.d.ts +0 -2
- package/dist/src/modules/fox/key-plays/view/FoxKeyPlays.js +0 -5
- package/dist/src/modules/fox/multi-view/interfaces/IMultiViewViewModel.d.ts +0 -3
- package/dist/src/modules/fox/multi-view/interfaces/IMultiViewViewModel.js +0 -1
- package/dist/src/modules/fox/multi-view/services/MultiViewService.d.ts +0 -99
- package/dist/src/modules/fox/multi-view/services/MultiViewService.js +0 -94
- package/dist/src/modules/fox/multi-view/types.d.ts +0 -48
- package/dist/src/modules/fox/multi-view/types.js +0 -86
- package/dist/src/modules/fox/multi-view/view/CuratedMultiview/CuratedMultiviews.d.ts +0 -8
- package/dist/src/modules/fox/multi-view/view/CuratedMultiview/CuratedMultiviews.js +0 -91
- package/dist/src/modules/fox/multi-view/view/CuratedMultiview/index.d.ts +0 -2
- package/dist/src/modules/fox/multi-view/view/CuratedMultiview/index.js +0 -2
- package/dist/src/modules/fox/multi-view/view/FoxMultiView.d.ts +0 -3
- package/dist/src/modules/fox/multi-view/view/FoxMultiView.js +0 -65
- package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/CustomMultiviewStreamsCard.d.ts +0 -122
- package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/CustomMultiviewStreamsCard.js +0 -51
- package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/index.d.ts +0 -2
- package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/index.js +0 -2
- package/dist/src/modules/fox/multi-view/view/components/LayoutSelector/LayoutSelector.d.ts +0 -13
- package/dist/src/modules/fox/multi-view/view/components/LayoutSelector/LayoutSelector.js +0 -40
- package/dist/src/modules/fox/multi-view/view/components/LayoutSelector/index.d.ts +0 -2
- package/dist/src/modules/fox/multi-view/view/components/LayoutSelector/index.js +0 -2
- package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/CuratedMultiviewCard.d.ts +0 -101
- package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/CuratedMultiviewCard.js +0 -21
- package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/index.d.ts +0 -2
- package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/index.js +0 -2
- package/dist/src/modules/fox/multi-view/view-model/MultiViewViewModel.d.ts +0 -63
- package/dist/src/modules/fox/multi-view/view-model/MultiViewViewModel.js +0 -328
- package/dist/src/modules/fox/multi-view/view-model/index.d.ts +0 -1
- package/dist/src/modules/fox/multi-view/view-model/index.js +0 -1
- package/dist/src/modules/fox/stats/view/FoxStatsView.d.ts +0 -2
- package/dist/src/modules/fox/stats/view/FoxStatsView.js +0 -5
- package/dist/src/modules/maestro/builder/components/BuilderSection/BuilderSection.d.ts +0 -11
- package/dist/src/modules/maestro/builder/components/BuilderSection/BuilderSection.js +0 -52
- package/dist/src/modules/maestro/builder/components/BuilderSection/index.d.ts +0 -2
- package/dist/src/modules/maestro/builder/components/BuilderSection/index.js +0 -2
- package/dist/src/modules/maestro/builder/components/ExpandableCard/ExpandableCard.d.ts +0 -110
- package/dist/src/modules/maestro/builder/components/ExpandableCard/ExpandableCard.js +0 -37
- package/dist/src/modules/maestro/builder/components/ExpandableCard/index.d.ts +0 -2
- package/dist/src/modules/maestro/builder/components/ExpandableCard/index.js +0 -2
- package/dist/src/modules/maestro/builder/components/SimpleCard/SimpleCard.d.ts +0 -104
- package/dist/src/modules/maestro/builder/components/SimpleCard/SimpleCard.js +0 -12
- package/dist/src/modules/maestro/builder/components/SimpleCard/index.d.ts +0 -2
- package/dist/src/modules/maestro/builder/components/SimpleCard/index.js +0 -2
- package/dist/src/modules/maestro/builder/index.d.ts +0 -7
- package/dist/src/modules/maestro/builder/index.js +0 -7
- package/dist/src/modules/maestro/builder/mocks/mockBuilderPanel.d.ts +0 -149
- package/dist/src/modules/maestro/builder/mocks/mockBuilderPanel.js +0 -240
- package/dist/src/modules/maestro/builder/types.d.ts +0 -52
- package/dist/src/modules/maestro/builder/types.js +0 -1
- package/dist/src/modules/maestro/builder/view/BuilderPanelView.d.ts +0 -4
- package/dist/src/modules/maestro/builder/view/BuilderPanelView.js +0 -52
- package/dist/src/modules/maestro/builder/view-model/BuilderPanelViewModel.d.ts +0 -40
- package/dist/src/modules/maestro/builder/view-model/BuilderPanelViewModel.js +0 -229
- package/dist/src/modules/maestro/builder/view-model/index.d.ts +0 -1
- package/dist/src/modules/maestro/builder/view-model/index.js +0 -1
- package/dist/src/modules/maestro/hello-world/HelloWorldImage.d.ts +0 -2
- package/dist/src/modules/maestro/hello-world/HelloWorldImage.js +0 -32
- package/dist/src/modules/maestro/hello-world/HelloWorldView.d.ts +0 -11
- package/dist/src/modules/maestro/hello-world/HelloWorldView.js +0 -40
- package/dist/src/modules/maestro/hello-world/index.d.ts +0 -2
- package/dist/src/modules/maestro/hello-world/index.js +0 -2
- package/dist/src/sentry.d.ts +0 -3
- package/dist/src/sentry.js +0 -51
- package/dist/src/services/AnalyticsService/AnalyticsService.d.ts +0 -85
- package/dist/src/services/AnalyticsService/AnalyticsService.js +0 -406
- package/dist/src/services/AnalyticsService/types.d.ts +0 -65
- package/dist/src/services/AnalyticsService/types.js +0 -1
- package/dist/src/services/InsightsService/InsightsPayloadBuilder.d.ts +0 -279
- package/dist/src/services/InsightsService/InsightsPayloadBuilder.js +0 -385
- package/dist/src/services/InsightsService/InsightsService.d.ts +0 -11
- package/dist/src/services/InsightsService/InsightsService.js +0 -74
- package/dist/src/services/NetworkManager/NetworkManager.d.ts +0 -153
- package/dist/src/services/NetworkManager/NetworkManager.js +0 -434
- package/dist/src/services/NetworkManager/errors.d.ts +0 -19
- package/dist/src/services/NetworkManager/errors.js +0 -59
- package/dist/src/services/NetworkManager/types.d.ts +0 -7
- package/dist/src/services/NetworkManager/types.js +0 -1
- package/dist/src/services/StaticService/StaticService.d.ts +0 -20
- package/dist/src/services/StaticService/StaticService.js +0 -86
- package/dist/src/services/StaticService/index.d.ts +0 -2
- package/dist/src/services/StaticService/index.js +0 -2
- package/dist/src/services/StaticService/mocks.d.ts +0 -3
- package/dist/src/services/StaticService/mocks.js +0 -119
- package/dist/src/services/StaticService/types.d.ts +0 -78
- package/dist/src/services/StaticService/types.js +0 -1
- package/dist/src/services/ThemeManager/constants.d.ts +0 -2
- package/dist/src/services/ThemeManager/constants.js +0 -47
- package/dist/src/services/UserSettingsManager.d.ts +0 -63
- package/dist/src/services/UserSettingsManager.js +0 -158
- package/dist/src/test-polyfills.d.ts +0 -1
- package/dist/src/test-polyfills.js +0 -15
- package/dist/src/view-models/MaestroEventViewModel.d.ts +0 -96
- package/dist/src/view-models/MaestroEventViewModel.js +0 -386
- package/dist/src/view-models/PanelManagerViewModel.d.ts +0 -49
- package/dist/src/view-models/PanelManagerViewModel.js +0 -195
- package/dist/src/view-models/ViewModel.d.ts +0 -12
- package/dist/src/view-models/ViewModel.js +0 -32
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/components/atoms/Image/index.tsx","webpack:///./src/components/core/ScrollableContainer/index.ts","webpack:///./src/components/atoms/BaseButton/index.ts","webpack:///./src/components/molecules/ActionButton/ActionButton.styles.css?ed9b","webpack:///./src/components/molecules/ActionButton/ActionButton.tsx","webpack:///./src/components/molecules/ActionButton/index.ts","webpack:///./src/components/molecules/ActionButton/ActionButton.styles.css","webpack:///./src/hooks/useMaxHeightToBottom.ts","webpack:///./src/modules/espn/components/TabLoadError/TabLoadError.styles.css","webpack:///./src/modules/espn/components/TabLoadError/TabLoadError.styles.css?f939","webpack:///./src/modules/espn/components/TabLoadError/TabLoadError.tsx","webpack:///./src/modules/espn/components/TabLoadError/index.ts","webpack:///./src/helpers/url.ts","webpack:///./src/modules/espn/shop/types.ts","webpack:///./src/modules/espn/shop/view/ShopView.styles.css","webpack:///./src/modules/espn/shop/view/ProductDetailView/ProductDetailView.styles.css","webpack:///./src/modules/espn/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css","webpack:///./src/modules/espn/shop/view/components/BrowseCard/BrowseCard.styles.css","webpack:///./src/modules/espn/shop/view/components/ShopPromoView/ShopPromoView.styles.css","webpack:///./src/modules/espn/shop/view/components/ShopSection/ShopSection.styles.css","webpack:///./src/modules/espn/shop/view/ShopView.styles.css?d965","webpack:///./src/modules/espn/shop/view/components/ShopSection/ShopSection.styles.css?01f8","webpack:///./src/modules/espn/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css?a178","webpack:///./src/modules/espn/shop/view/components/ProductSummaryCard/ProductSummaryCard.tsx","webpack:///./src/modules/espn/shop/view/components/BrowseCard/BrowseCard.styles.css?129c","webpack:///./src/modules/espn/shop/view/components/BrowseCard/BrowseCard.tsx","webpack:///./src/modules/espn/shop/view/components/ShopSection/ShopSection.tsx","webpack:///./src/modules/espn/shop/view/ProductDetailView/ProductDetailView.styles.css?946c","webpack:///./src/modules/espn/shop/view/ProductDetailView/ProductDetailView.tsx","webpack:///./src/modules/espn/shop/view/components/ShopPromoView/ShopPromoView.styles.css?cea1","webpack:///./src/modules/espn/shop/view/components/ShopPromoView/ShopPromoView.tsx","webpack:///./src/modules/espn/shop/view/ShopView.tsx","webpack:///./src/modules/espn/shop/view/index.ts"],"names":["Image","React","Component","constructor","props","super","_defineProperty","failed","this","setState","render","state","console","warn","src","createElement","_extends","alt","onError","handleError","ScrollableContainer","BaseButton","options","locals","ActionButton","children","focused","_focused","focusKey","_focusKey","parentFocusKey","_parentFocusKey","preferredChildFocusKey","_preferredChildFocusKey","forgetLastFocusedChild","_forgetLastFocusedChild","trackChildren","_trackChildren","autoRestoreFocus","_autoRestoreFocus","blockNavigationOut","_blockNavigationOut","hasFocusedChild","_hasFocusedChild","focusable","_focusable","onEnterPress","_onEnterPress","onEnterRelease","_onEnterRelease","onBackPress","_onBackPress","onArrowPress","_onArrowPress","onBecameFocused","_onBecameFocused","onBecameBlurred","_onBecameBlurred","realFocusKey","_realFocusKey","setFocus","_setFocus","navigateByDirection","_navigateByDirection","stealFocus","_stealFocus","onUpdateFocus","_onUpdateFocus","onUpdateHasFocusedChild","_onUpdateHasFocusedChild","buttonProps","className","withFocusable","___CSS_LOADER_EXPORT___","push","module","i","calculateMaxHeight","element","rect","getBoundingClientRect","style","maxHeight","window","innerHeight","top","useMaxHeightToBottom","elementRef","useRef","handleResize","useCallback","current","useEffect","addEventListener","removeEventListener","setupMaxHeightToBottom","getElement","TabLoadErrorView","data-focused","setImageDimensions","url","width","height","urlObj","URL","searchParams","set","toString","err","isShopProduct","item","type","ProductSummaryCard","product","image","name","price","salePrice","displayClearance","displaySale","isOnSale","Boolean","href","data-has-image","displayRetail","BrowseCardView","browseCard","caption","detail","backgroundImage","backgroundSize","backgroundPosition","backgroundClip","ShopSection","section","sectionIndex","onItemClick","_section$items","scrollToFocusedElement","useScrollableContainer","layout","offsetTop","title","items","map","itemIndex","FocusableItem","key","BrowseCard","FocusableProductDetail","_product$detail","_detail$link","bgImage","getBackgroundImage","hostname","includes","undefined","description","qrCode","link","text","ProductDetailView","_props$product$detail","disclaimer","FocusablePromoView","_promo$detail","_promo$image","_promo$detail2","_promo$detail3","_promo$detail4","_promo$detail4$link","promo","promoData","ShopPromoViewWrapper","_props$promoData$deta","ShopView","viewModel","clearTabLoadFailure","d","SDK","getMaestroEventViewModel","deliverFocus","container","scrollTop","selectedItem","selectedShopSection","selectedItemFocusKey","card","trackItemClick","navigation","setTimeout","sections","errorState","closeProductDetail","length","index","openItemDetail","ShopPromoView","trackPromoEnterPress","e","maxHeightCleanup","vm","shopViewModel","value","isDataLoading","Error","componentDidMount","sectionsListener","subscribe","isDataLoadingListener","errorStateListener","promoDataListener","init","componentWillUnmount","cleanup","scrollableContainerRef","containerTopOffset","data-has-product-selected","data-has-error","ref","setContainerRef","renderContent"],"mappings":"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","file":"5.maestro-web-sdk.esm.js","sourcesContent":["import React from 'react';\nimport { ImgHTMLAttributes } from 'react';\n\ninterface ImageProps extends ImgHTMLAttributes<HTMLImageElement> {}\n\nclass Image extends React.Component<ImageProps> {\n state = {\n failed: false,\n };\n\n constructor(props: ImageProps) {\n super(props);\n }\n\n handleError = () => {\n this.setState({ failed: true });\n };\n\n render() {\n if (this.state.failed) {\n console.warn('Image failed to load:', this.props.src);\n return null;\n }\n\n if (!this.props.src) {\n console.warn('Image source is empty');\n return null;\n }\n\n return (\n <img\n alt={this.props.alt || 'Image'}\n {...this.props}\n onError={this.handleError}\n />\n );\n }\n}\n\nexport default Image;\n","import ScrollableContainer from './ScrollableContainer';\n\nexport { ScrollableContainerContext } from './ScrollableContainer';\nexport { useScrollableContainer } from './useScrollableContainer';\nexport { default as FocusableItem } from './FocusableItem';\nexport type { ScrollableContainerContextType } from './ScrollableContainer';\nexport default ScrollableContainer;\n","import BaseButton from './BaseButton';\n\nexport default BaseButton;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ActionButton.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import BaseButton from '@/components/atoms/BaseButton';\nimport './ActionButton.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport React from 'react';\n\ntype SpatialNavigationInjectedProps = {\n realFocusKey?: string;\n setFocus?: (focusKey: string) => void;\n navigateByDirection?: (...args: any[]) => any;\n stealFocus?: () => void;\n onUpdateFocus?: (focused: boolean) => void;\n onUpdateHasFocusedChild?: (hasFocusedChild: boolean) => void;\n};\n\ntype Props = React.PropsWithChildren<\n React.ButtonHTMLAttributes<HTMLButtonElement> &\n WithFocusableProps &\n SpatialNavigationInjectedProps\n>;\n\nclass ActionButton extends React.Component<Props, {}> {\n render() {\n const {\n children,\n // spatial-navigation props (must not hit DOM)\n focused: _focused,\n focusKey: _focusKey,\n parentFocusKey: _parentFocusKey,\n preferredChildFocusKey: _preferredChildFocusKey,\n forgetLastFocusedChild: _forgetLastFocusedChild,\n trackChildren: _trackChildren,\n autoRestoreFocus: _autoRestoreFocus,\n blockNavigationOut: _blockNavigationOut,\n hasFocusedChild: _hasFocusedChild,\n focusable: _focusable,\n onEnterPress: _onEnterPress,\n onEnterRelease: _onEnterRelease,\n onBackPress: _onBackPress,\n onArrowPress: _onArrowPress,\n onBecameFocused: _onBecameFocused,\n onBecameBlurred: _onBecameBlurred,\n // injected/internal props (also must not hit DOM)\n realFocusKey: _realFocusKey,\n setFocus: _setFocus,\n navigateByDirection: _navigateByDirection,\n stealFocus: _stealFocus,\n onUpdateFocus: _onUpdateFocus,\n onUpdateHasFocusedChild: _onUpdateHasFocusedChild,\n ...buttonProps\n } = this.props;\n\n return (\n <BaseButton className=\"action-button T05_ALT\" {...buttonProps}>\n {children}\n </BaseButton>\n );\n }\n}\n\nexport default withFocusable()(ActionButton);\n","import ActionButton from './ActionButton';\n\nexport default ActionButton;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".action-button {\\n padding: 23px 0;\\n background-color: var(--sdk-surface5);\\n color: var(--sdk-text100);\\n}\\n\\n.action-button:hover,\\n.action-button[data-focused='true'] {\\n background-color: var(--sdk-accentPrimary);\\n color: var(--sdk-text500);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/molecules/ActionButton/ActionButton.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,eAAe;EACf,qCAAqC;EACrC,yBAAyB;AAC3B;;AAEA;;EAEE,0CAA0C;EAC1C,yBAAyB;AAC3B\",\"sourcesContent\":[\".action-button {\\n padding: 23px 0;\\n background-color: var(--sdk-surface5);\\n color: var(--sdk-text100);\\n}\\n\\n.action-button:hover,\\n.action-button[data-focused='true'] {\\n background-color: var(--sdk-accentPrimary);\\n color: var(--sdk-text500);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { useCallback, useEffect, useRef } from 'react';\n\n/**\n * Calculates and sets maxHeight on an element to fill remaining viewport height.\n * Updates on window resize.\n */\nfunction calculateMaxHeight(element: HTMLElement | null): void {\n if (!element) return;\n const rect = element.getBoundingClientRect();\n element.style.maxHeight = `${window.innerHeight - rect.top}px`;\n}\n\n/**\n * Hook for functional components.\n * Returns a ref callback that sets up maxHeight calculation with resize listener.\n */\nexport function useMaxHeightToBottom(): (\n element: HTMLDivElement | null\n) => void {\n const elementRef = useRef<HTMLDivElement | null>(null);\n\n const handleResize = useCallback(() => {\n calculateMaxHeight(elementRef.current);\n }, []);\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [handleResize]);\n\n const refCallback = useCallback((element: HTMLDivElement | null) => {\n elementRef.current = element;\n calculateMaxHeight(element);\n }, []);\n\n return refCallback;\n}\n\n/**\n * Utility for class components.\n * Call in componentDidMount, returns cleanup function for componentWillUnmount.\n */\nexport function setupMaxHeightToBottom(\n getElement: () => HTMLElement | null\n): () => void {\n const handleResize = () => {\n calculateMaxHeight(getElement());\n };\n\n // Initial calculation\n handleResize();\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n}\n\nexport default useMaxHeightToBottom;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tab-load-error {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.tab-load-error h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.tab-load-error p {\\n height: 86px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/components/TabLoadError/TabLoadError.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,YAAY;AACd\",\"sourcesContent\":[\".tab-load-error {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.tab-load-error h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.tab-load-error p {\\n height: 86px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./TabLoadError.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport React from 'react';\nimport './TabLoadError.styles.css';\nimport ActionButton from '@/components/molecules/ActionButton';\n\nclass TabLoadErrorView extends React.Component<WithFocusableProps> {\n render() {\n const { focused, onEnterPress } = this.props;\n\n return (\n <div data-focused={focused} className=\"tab-load-error focus-ring\">\n <h3 className=\"T70\">We dropped the ball.</h3>\n <p className=\"T20\">\n {\"We're having trouble loading that for you. Please try again.\"}\n </p>\n <ActionButton data-focused={focused} onEnterPress={onEnterPress}>\n Try Again\n </ActionButton>\n </div>\n );\n }\n}\n\nexport default withFocusable()(TabLoadErrorView);\n","import TabLoadErrorView from './TabLoadError';\n\nexport default TabLoadErrorView;\n","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","/**\n * Shop module type definitions\n * Based on ESPN Shop API structure\n */\n\n/**\n * Image reference\n */\nexport interface IShopImage {\n /** Image URL */\n href?: string;\n /** Image width */\n width?: number;\n /** Image height */\n height?: number;\n}\n\n/**\n * Logo reference (same structure as image)\n */\nexport interface IShopLogo {\n /** Logo URL */\n href?: string;\n /** Logo width */\n width?: number;\n /** Logo height */\n height?: number;\n}\n\n/**\n * Link reference\n */\nexport interface IShopLink {\n /** Link URL */\n href?: string;\n /** Link text */\n text?: string;\n /** Link relations (e.g., [\"ictv\", \"fanatics\", \"index\", \"team\"]) */\n rel?: string[];\n}\n\n/**\n * Price information for a product\n */\nexport interface IShopPrice {\n /** Retail price display string (e.g., \"$29.99\") */\n displayRetail?: string;\n /** Sale price display string (e.g., \"$19.99\") - optional */\n displaySale?: string;\n /** Clearance price display string (e.g., \"$14.99\") - optional */\n displayClearance?: string;\n}\n\n/**\n * Product detail information shown in detail view\n */\nexport interface IShopDetail {\n /** Title for the detail view */\n title?: string;\n /** Description (optional, used for browse cards) */\n description?: string;\n /** Link information */\n link?: IShopLink;\n /** Background image URL */\n backgroundImage?: string;\n /** QR code image URL */\n qrCode?: string;\n /** Disclaimer text */\n disclaimer?: string;\n}\n\n/**\n * Product item in a shop section\n */\nexport interface IShopProduct {\n /** Item type discriminator */\n type?: 'product';\n /** Product name */\n name?: string;\n /** Product image */\n image?: IShopImage;\n /** Price information */\n price?: IShopPrice;\n /** Detail view information */\n detail?: IShopDetail;\n}\n\n/**\n * Browse card item (Want More?) in a shop section\n */\nexport interface IShopBrowseCard {\n /** Item type discriminator */\n type?: 'browse';\n /** Browse card name */\n name?: string;\n /** Caption text (e.g., \"Browse all Canadiens merch\") */\n caption?: string;\n /** Team/League/Event logo */\n image?: IShopImage;\n /** Detail view information */\n detail?: IShopDetail;\n}\n\n/**\n * Union type for all shop items\n */\nexport type IShopItem = IShopProduct | IShopBrowseCard;\n\n/**\n * Section product information (team/league info)\n */\nexport interface IShopSectionProduct {\n /** Product/Team ID */\n id?: string;\n /** Short display name (e.g., \"Canadiens\") */\n shortDisplayName?: string;\n /** Logo reference */\n logo?: IShopLogo;\n /** Type (e.g., \"team\") */\n type?: string;\n /** Link information */\n link?: IShopLink;\n /** Background image URL */\n backgroundImage?: string;\n}\n\n/**\n * Shop section containing a title and list of items\n */\nexport interface IShopSection {\n /** Section title (e.g., \"Shop Canadiens Merch\") */\n title?: string;\n /** Section product/team information */\n product?: IShopSectionProduct;\n /** Array of products or browse cards */\n items?: IShopItem[];\n}\n\nexport type IShopDefaultItem = {\n image?: {\n href?: string;\n width?: number;\n height?: number;\n };\n type?: string;\n detail?: {\n title?: string;\n link?: {\n href?: string;\n text?: string;\n };\n backgroundImage?: string;\n qrCode?: string;\n disclaimer?: string;\n };\n};\n\n/**\n * Shop container with sections\n */\nexport interface IShopContainer {\n /** Array of shop sections */\n sections?: IShopSection[];\n defaultItem?: IShopDefaultItem;\n}\n\n/**\n * Main shop API response\n */\nexport interface IShopResponse {\n /** Array of shop containers (typically one) */\n shop?: IShopContainer[];\n}\n\nexport const isShopProduct = (item: IShopItem): item is IShopProduct => {\n return item.type === 'product';\n};\n\nexport interface IShopViewModel {\n cleanup(): void;\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-view {\\n display: block;\\n overflow-y: auto;\\n scrollbar-width: none;\\n scroll-behavior: smooth;\\n overscroll-behavior: contain;\\n margin-top: 60px;\\n}\\n\\n.shop-view::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.shop-bottom-padding {\\n height: 50vh;\\n}\\n\\n.shop-empty-state {\\n display: block;\\n text-align: center;\\n padding: 60px 20px;\\n color: #ffffff;\\n font-size: 18px;\\n}\\n\\n.shop-sections {\\n display: block;\\n}\\n\\n.scrollable-container[data-has-product-selected='true']::before,\\n.scrollable-container[data-has-product-selected='true']::after,\\n.scrollable-container[data-has-error='true']::after,\\n.scrollable-container[data-has-error='true']::before {\\n background: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/shop/view/ShopView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,gBAAgB;EAChB,qBAAqB;EACrB,uBAAuB;EACvB,4BAA4B;EAC5B,gBAAgB;AAClB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,cAAc;AAChB;;AAEA;;;;EAIE,gBAAgB;AAClB\",\"sourcesContent\":[\".shop-view {\\n display: block;\\n overflow-y: auto;\\n scrollbar-width: none;\\n scroll-behavior: smooth;\\n overscroll-behavior: contain;\\n margin-top: 60px;\\n}\\n\\n.shop-view::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.shop-bottom-padding {\\n height: 50vh;\\n}\\n\\n.shop-empty-state {\\n display: block;\\n text-align: center;\\n padding: 60px 20px;\\n color: #ffffff;\\n font-size: 18px;\\n}\\n\\n.shop-sections {\\n display: block;\\n}\\n\\n.scrollable-container[data-has-product-selected='true']::before,\\n.scrollable-container[data-has-product-selected='true']::after,\\n.scrollable-container[data-has-error='true']::after,\\n.scrollable-container[data-has-error='true']::before {\\n background: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".product-detail-view-wrapper > *:first-child {\\n margin-bottom: 16px;\\n}\\n\\n/* Card */\\n.product-detail-card {\\n display: inline-block;\\n padding: 24px;\\n text-align: center;\\n box-sizing: border-box;\\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\\n width: 100%;\\n}\\n\\n/* Title */\\n.product-detail-title {\\n margin-bottom: 32px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n/* Mini Product Card Container */\\n.product-detail-product {\\n margin-bottom: 32px;\\n}\\n\\n/* Override ProductSummaryCard styles when inside detail view */\\n.product-detail-product .product-summary-card,\\n.product-detail-product .browse-card {\\n text-align: left;\\n background-color: #ffffff14;\\n background-image: none !important;\\n padding: 16px;\\n}\\n\\n.product-detail-product .browse-card {\\n direction: rtl;\\n}\\n\\n.product-detail-product .browse-card .browse-card-content {\\n direction: ltr;\\n}\\n\\n.product-detail-product .browse-card .browse-card-logo-image {\\n margin-left: 0;\\n margin-right: 24px;\\n width: calc(20% - 24px);\\n}\\n\\n.product-detail-product\\n .product-summary-card\\n .product-summary-card-image-container {\\n width: 20%;\\n}\\n\\n.product-detail-product .product-summary-card .product-summary-card-content {\\n width: 80%;\\n padding: 6px 0px 6px 24px;\\n}\\n\\n.product-detail-product .product-summary-card-title {\\n -webkit-line-clamp: 2;\\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\\n}\\n\\n/* QR Code Container */\\n.product-detail-qr {\\n background-color: var(--sdk-highlightPrimary);\\n border-radius: 24px;\\n margin: 32px 30% 28px 30%;\\n overflow: hidden;\\n}\\n\\n.product-detail-qr-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n}\\n\\n/* Instruction Text */\\n.product-detail-instruction {\\n margin-bottom: 24px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.product-detail-disclaimer {\\n text-align: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/shop/view/ProductDetailView/ProductDetailView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,mBAAmB;AACrB;;AAEA,SAAS;AACT;EACE,qBAAqB;EACrB,aAAa;EACb,kBAAkB;EAClB,sBAAsB;EACtB,iDAAiD;EACjD,WAAW;AACb;;AAEA,UAAU;AACV;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA,gCAAgC;AAChC;EACE,mBAAmB;AACrB;;AAEA,+DAA+D;AAC/D;;EAEE,gBAAgB;EAChB,2BAA2B;EAC3B,iCAAiC;EACjC,aAAa;AACf;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,uBAAuB;AACzB;;AAEA;;;EAGE,UAAU;AACZ;;AAEA;EACE,UAAU;EACV,yBAAyB;AAC3B;;AAEA;EACE,qBAAqB;EACrB,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,sBAAsB;AACtB;EACE,6CAA6C;EAC7C,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;AACrB;;AAEA,qBAAqB;AACrB;EACE,mBAAmB;EACnB,qCAAqC;AACvC;;AAEA;EACE,kBAAkB;AACpB\",\"sourcesContent\":[\".product-detail-view-wrapper > *:first-child {\\n margin-bottom: 16px;\\n}\\n\\n/* Card */\\n.product-detail-card {\\n display: inline-block;\\n padding: 24px;\\n text-align: center;\\n box-sizing: border-box;\\n box-shadow: 0px 0px 100px 0px var(--sdk-surface1);\\n width: 100%;\\n}\\n\\n/* Title */\\n.product-detail-title {\\n margin-bottom: 32px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n/* Mini Product Card Container */\\n.product-detail-product {\\n margin-bottom: 32px;\\n}\\n\\n/* Override ProductSummaryCard styles when inside detail view */\\n.product-detail-product .product-summary-card,\\n.product-detail-product .browse-card {\\n text-align: left;\\n background-color: #ffffff14;\\n background-image: none !important;\\n padding: 16px;\\n}\\n\\n.product-detail-product .browse-card {\\n direction: rtl;\\n}\\n\\n.product-detail-product .browse-card .browse-card-content {\\n direction: ltr;\\n}\\n\\n.product-detail-product .browse-card .browse-card-logo-image {\\n margin-left: 0;\\n margin-right: 24px;\\n width: calc(20% - 24px);\\n}\\n\\n.product-detail-product\\n .product-summary-card\\n .product-summary-card-image-container {\\n width: 20%;\\n}\\n\\n.product-detail-product .product-summary-card .product-summary-card-content {\\n width: 80%;\\n padding: 6px 0px 6px 24px;\\n}\\n\\n.product-detail-product .product-summary-card-title {\\n -webkit-line-clamp: 2;\\n max-height: calc(1.3em * 2); /* line-height * 3 lines */\\n}\\n\\n/* QR Code Container */\\n.product-detail-qr {\\n background-color: var(--sdk-highlightPrimary);\\n border-radius: 24px;\\n margin: 32px 30% 28px 30%;\\n overflow: hidden;\\n}\\n\\n.product-detail-qr-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n}\\n\\n/* Instruction Text */\\n.product-detail-instruction {\\n margin-bottom: 24px;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.product-detail-disclaimer {\\n text-align: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Product Summary Card - TV-compatible CSS (no flex/grid) */\\n\\n.product-summary-card {\\n position: relative;\\n background-color: var(--sdk-surface4);\\n overflow: hidden;\\n vertical-align: middle;\\n padding: 24px;\\n width: 100%;\\n height: 192px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n/* Helper for vertical centering */\\n.product-summary-card::before {\\n content: '';\\n display: inline-block;\\n height: 100%;\\n vertical-align: middle;\\n}\\n\\n/* Product Image Container - 144x144 */\\n.product-summary-card-image-container {\\n display: inline-block;\\n vertical-align: middle;\\n width: 20%;\\n max-height: 144px;\\n overflow: hidden;\\n line-height: 0;\\n}\\n\\n.product-summary-card-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n border-radius: 8px;\\n}\\n\\n/* Text Content Container */\\n.product-summary-card-content {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 16px 0 16px 24px;\\n white-space: normal;\\n width: 80%;\\n box-sizing: border-box;\\n}\\n\\n.product-summary-card-content[data-has-image='false'] {\\n width: 100%;\\n}\\n\\n/* Product Title - max 3 lines with ellipsis */\\n.product-summary-card-title {\\n padding-bottom: 4px;\\n /* Line clamp for 3 lines */\\n display: -webkit-box;\\n -webkit-line-clamp: 3;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n /* Fallback for non-webkit browsers */\\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\\n}\\n\\n/* Price Container */\\n.product-summary-card-price-container {\\n white-space: nowrap;\\n}\\n\\n/* Original Price (crossed out when on sale) */\\n.product-summary-card-price-original {\\n text-decoration: line-through;\\n opacity: 0.6;\\n margin-right: 4px;\\n}\\n\\n/* Sale/Clearance Price */\\n.product-summary-card-price-sale {\\n margin-right: 8px;\\n}\\n\\n/* Sale/Clearance Badge */\\n.product-summary-card-badge {\\n display: inline-block;\\n background-color: var(--sdk-alertError);\\n padding-inline: 4px;\\n border-radius: 4px;\\n}\\n\\n.product-summary-card-qr-image {\\n object-fit: contain;\\n position: absolute;\\n bottom: 16px;\\n right: 16px;\\n width: 6%;\\n height: auto;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/shop/view/components/ProductSummaryCard/ProductSummaryCard.styles.css\"],\"names\":[],\"mappings\":\"AAAA,4DAA4D;;AAE5D;EACE,kBAAkB;EAClB,qCAAqC;EACrC,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA,kCAAkC;AAClC;EACE,WAAW;EACX,qBAAqB;EACrB,YAAY;EACZ,sBAAsB;AACxB;;AAEA,sCAAsC;AACtC;EACE,qBAAqB;EACrB,sBAAsB;EACtB,UAAU;EACV,iBAAiB;EACjB,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA,2BAA2B;AAC3B;EACE,qBAAqB;EACrB,sBAAsB;EACtB,yBAAyB;EACzB,mBAAmB;EACnB,UAAU;EACV,sBAAsB;AACxB;;AAEA;EACE,WAAW;AACb;;AAEA,8CAA8C;AAC9C;EACE,mBAAmB;EACnB,2BAA2B;EAC3B,oBAAoB;EACpB,qBAAqB;EACrB,4BAA4B;EAC5B,gBAAgB;EAChB,uBAAuB;EACvB,qCAAqC;EACrC,2BAA2B,EAAE,0BAA0B;AACzD;;AAEA,oBAAoB;AACpB;EACE,mBAAmB;AACrB;;AAEA,8CAA8C;AAC9C;EACE,6BAA6B;EAC7B,YAAY;EACZ,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,iBAAiB;AACnB;;AAEA,yBAAyB;AACzB;EACE,qBAAqB;EACrB,uCAAuC;EACvC,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,YAAY;EACZ,WAAW;EACX,SAAS;EACT,YAAY;AACd\",\"sourcesContent\":[\"/* Product Summary Card - TV-compatible CSS (no flex/grid) */\\n\\n.product-summary-card {\\n position: relative;\\n background-color: var(--sdk-surface4);\\n overflow: hidden;\\n vertical-align: middle;\\n padding: 24px;\\n width: 100%;\\n height: 192px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n/* Helper for vertical centering */\\n.product-summary-card::before {\\n content: '';\\n display: inline-block;\\n height: 100%;\\n vertical-align: middle;\\n}\\n\\n/* Product Image Container - 144x144 */\\n.product-summary-card-image-container {\\n display: inline-block;\\n vertical-align: middle;\\n width: 20%;\\n max-height: 144px;\\n overflow: hidden;\\n line-height: 0;\\n}\\n\\n.product-summary-card-image {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n border-radius: 8px;\\n}\\n\\n/* Text Content Container */\\n.product-summary-card-content {\\n display: inline-block;\\n vertical-align: middle;\\n padding: 16px 0 16px 24px;\\n white-space: normal;\\n width: 80%;\\n box-sizing: border-box;\\n}\\n\\n.product-summary-card-content[data-has-image='false'] {\\n width: 100%;\\n}\\n\\n/* Product Title - max 3 lines with ellipsis */\\n.product-summary-card-title {\\n padding-bottom: 4px;\\n /* Line clamp for 3 lines */\\n display: -webkit-box;\\n -webkit-line-clamp: 3;\\n -webkit-box-orient: vertical;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n /* Fallback for non-webkit browsers */\\n max-height: calc(1.3em * 3); /* line-height * 3 lines */\\n}\\n\\n/* Price Container */\\n.product-summary-card-price-container {\\n white-space: nowrap;\\n}\\n\\n/* Original Price (crossed out when on sale) */\\n.product-summary-card-price-original {\\n text-decoration: line-through;\\n opacity: 0.6;\\n margin-right: 4px;\\n}\\n\\n/* Sale/Clearance Price */\\n.product-summary-card-price-sale {\\n margin-right: 8px;\\n}\\n\\n/* Sale/Clearance Badge */\\n.product-summary-card-badge {\\n display: inline-block;\\n background-color: var(--sdk-alertError);\\n padding-inline: 4px;\\n border-radius: 4px;\\n}\\n\\n.product-summary-card-qr-image {\\n object-fit: contain;\\n position: absolute;\\n bottom: 16px;\\n right: 16px;\\n width: 6%;\\n height: auto;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\\n\\n.browse-card {\\n position: relative;\\n display: block;\\n background-color: var(--sdk-surface4);\\n padding: 24px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n.browse-card-content {\\n display: inline-block;\\n width: 80%;\\n vertical-align: middle;\\n}\\n\\n/* Tag Line */\\n.browse-card-tagline {\\n margin-bottom: 4px;\\n width: 85%;\\n}\\n\\n.browse-card-caption {\\n width: 85%;\\n}\\n\\n.browse-card-logo-image {\\n width: calc(20% - 12px);\\n height: 100%;\\n vertical-align: middle;\\n margin-left: 12px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/shop/view/components/BrowseCard/BrowseCard.styles.css\"],\"names\":[],\"mappings\":\"AAAA,+DAA+D;;AAE/D;EACE,kBAAkB;EAClB,cAAc;EACd,qCAAqC;EACrC,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,qBAAqB;EACrB,UAAU;EACV,sBAAsB;AACxB;;AAEA,aAAa;AACb;EACE,kBAAkB;EAClB,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,uBAAuB;EACvB,YAAY;EACZ,sBAAsB;EACtB,iBAAiB;AACnB\",\"sourcesContent\":[\"/* Browse Card (Want More) - TV-compatible CSS (no flex/grid) */\\n\\n.browse-card {\\n position: relative;\\n display: block;\\n background-color: var(--sdk-surface4);\\n padding: 24px;\\n box-sizing: border-box;\\n text-align: left;\\n}\\n\\n.browse-card-content {\\n display: inline-block;\\n width: 80%;\\n vertical-align: middle;\\n}\\n\\n/* Tag Line */\\n.browse-card-tagline {\\n margin-bottom: 4px;\\n width: 85%;\\n}\\n\\n.browse-card-caption {\\n width: 85%;\\n}\\n\\n.browse-card-logo-image {\\n width: calc(20% - 12px);\\n height: 100%;\\n vertical-align: middle;\\n margin-left: 12px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-promo-view {\\n display: block;\\n text-align: center;\\n padding: 32px;\\n background-size: cover;\\n background-position: center;\\n background-repeat: no-repeat;\\n}\\n\\n.shop-promo-logo {\\n padding: 30px 24px;\\n}\\n\\n.shop-promo-qr-code {\\n border-radius: 24px;\\n margin: 32px 0 48px 0;\\n width: 100%;\\n max-width: 50%;\\n}\\n\\n.shop-promo-description {\\n margin: 0 17px;\\n}\\n\\n.promo-view-disclaimer {\\n margin-top: 24px;\\n text-align: center;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/shop/view/components/ShopPromoView/ShopPromoView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;EACnB,qBAAqB;EACrB,WAAW;EACX,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;AACpB\",\"sourcesContent\":[\".shop-promo-view {\\n display: block;\\n text-align: center;\\n padding: 32px;\\n background-size: cover;\\n background-position: center;\\n background-repeat: no-repeat;\\n}\\n\\n.shop-promo-logo {\\n padding: 30px 24px;\\n}\\n\\n.shop-promo-qr-code {\\n border-radius: 24px;\\n margin: 32px 0 48px 0;\\n width: 100%;\\n max-width: 50%;\\n}\\n\\n.shop-promo-description {\\n margin: 0 17px;\\n}\\n\\n.promo-view-disclaimer {\\n margin-top: 24px;\\n text-align: center;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".shop-section-title {\\n margin: 0;\\n margin-bottom: 0 !important;\\n padding-top: 24px;\\n padding-bottom: 0;\\n margin-bottom: 16px !important;\\n text-align: center;\\n position: sticky;\\n top: 0;\\n z-index: 1;\\n font-size: 21px;\\n}\\n\\n/* Layout for product cards - TV compatible (no flex/grid) */\\n.shop-section-items > * {\\n display: inline-block;\\n margin-bottom: 16px;\\n}\\n\\n.shop-item-placeholder {\\n display: inline-block;\\n vertical-align: top;\\n width: 200px;\\n height: 250px;\\n padding: 16px;\\n background-color: rgba(255, 255, 255, 0.1);\\n border-radius: 8px;\\n color: #ffffff;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/shop/view/components/ShopSection/ShopSection.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,SAAS;EACT,2BAA2B;EAC3B,iBAAiB;EACjB,iBAAiB;EACjB,8BAA8B;EAC9B,kBAAkB;EAClB,gBAAgB;EAChB,MAAM;EACN,UAAU;EACV,eAAe;AACjB;;AAEA,4DAA4D;AAC5D;EACE,qBAAqB;EACrB,mBAAmB;AACrB;;AAEA;EACE,qBAAqB;EACrB,mBAAmB;EACnB,YAAY;EACZ,aAAa;EACb,aAAa;EACb,0CAA0C;EAC1C,kBAAkB;EAClB,cAAc;AAChB\",\"sourcesContent\":[\".shop-section-title {\\n margin: 0;\\n margin-bottom: 0 !important;\\n padding-top: 24px;\\n padding-bottom: 0;\\n margin-bottom: 16px !important;\\n text-align: center;\\n position: sticky;\\n top: 0;\\n z-index: 1;\\n font-size: 21px;\\n}\\n\\n/* Layout for product cards - TV compatible (no flex/grid) */\\n.shop-section-items > * {\\n display: inline-block;\\n margin-bottom: 16px;\\n}\\n\\n.shop-item-placeholder {\\n display: inline-block;\\n vertical-align: top;\\n width: 200px;\\n height: 250px;\\n padding: 16px;\\n background-color: rgba(255, 255, 255, 0.1);\\n border-radius: 8px;\\n color: #ffffff;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopSection.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ProductSummaryCard.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './ProductSummaryCard.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport { Direction, Layout } from '@/external/spatial-navigation/utils';\n\nimport { IShopProduct } from '../../../types';\nimport Image from '@/components/atoms/Image';\n\n// QR code image as base64 data URI for SDK bundle\nconst productSummaryQRCode =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACHElEQVR4Ae2YgXHCMAxFf3oM0A3qbsAGDRuwQWGC0gmgEwATkG7ABqQb0AlwN0gnSKXDpWqwiQU5IHe8O52xY8U/toyVoIwjRcPwPWMGvsOVc/UCE55GUe+RWU+/IkmSAg1DQxtPM7etZCfJAy4Mi25VDHZCF0g8T7NBPHMKgxn5jej3i8LPkl8PWoHYijOI516UBg3RiiXeTS9N9Veg3yvZ2tPOS9lHmA+yiae9SzYN+BRSU4dE5ahn7etH8Tao8dsE/IIO7u9s56NaYrrxlDcPWV/plzq/KZRoY5CXJsXfhojFOL8ulHSU/d/I3iGWIJKcbIhtfKlQCYyMV5+fpSLDEcQKHFP8PHvan2r8OPYWnvboEIkVmOI4DNkAJ9Des5iYQ7db80oZS+Np3FlJQhdcVqKaQd7l7v0lVfhxMjyDFhpoU+qYOL9JqWNzSEerN4lkCX8wp2gw9/MRK3AeyEoy7AvktCwTdb6eirrF/51eNCHwVxBnMbxxcnd87UHtPNtL4TOoCqQ+Q0SijUFOUBc4/mRRo81mPl1pcSa02cyork+5fRk3ool/56Juy8q3nkNZUqzAbiBN973oD8jGop7J10onbiWuW7JHhARWnmYd+MShTtVPQWriGZRPY3Dhw9uFyE7ToSW20FGI0or2b08/Gz1O5Vy8fTzS0rpk4ZFmdS9HDB1rp0Dj8JHpyzdNtWMMKZoXePuIfhZ+AArh47ArZrulAAAAAElFTkSuQmCC';\n\nexport type ProductSummaryCardProps = {\n product: IShopProduct;\n onEnterPress?: () => void;\n onArrowPress?: (direction: Direction) => void;\n onBecameFocused?: (layout: Layout) => void;\n};\n\nclass ProductSummaryCard extends React.Component<\n ProductSummaryCardProps & WithFocusableProps\n> {\n render() {\n const { product, focused } = this.props;\n const { image, name, price } = product;\n\n // Determine if this is a sale or clearance item\n const salePrice = price?.displayClearance || price?.displaySale;\n const isOnSale = !!salePrice;\n\n return (\n <div className=\"product-summary-card focus-ring\" data-focused={focused}>\n {/* Product Image */}\n {Boolean(image?.href) && (\n <div className=\"product-summary-card-image-container\">\n <Image\n src={image!.href}\n alt={name || 'Product'}\n className=\"product-summary-card-image\"\n />\n </div>\n )}\n\n {/* Text Content Container */}\n <div\n className=\"product-summary-card-content\"\n data-has-image={!!image?.href}\n >\n {/* Product Title - max 3 lines with ellipsis */}\n <div className=\"product-summary-card-title T05_ALT\">\n {name || 'Product Name'}\n </div>\n\n {/* Price */}\n <div className=\"product-summary-card-price-container\">\n {isOnSale ? (\n <div>\n <span className=\"product-summary-card-price-original T02 TEXT_200\">\n {price?.displayRetail || '$0.00'}\n </span>\n <span className=\"product-summary-card-price-sale T02 TEXT_200\">\n {salePrice}\n </span>\n <span className=\"product-summary-card-badge T02 FONT_BOLD\">\n SALE\n </span>\n </div>\n ) : (\n <span className=\"product-summary-card-price T02 TEXT_200\">\n {price?.displayRetail || '$0.00'}\n </span>\n )}\n </div>\n </div>\n\n {/* QR Code Image - shown on focus */}\n {focused && (\n <Image\n src={productSummaryQRCode}\n alt=\"QR Code\"\n className=\"product-summary-card-qr-image\"\n />\n )}\n </div>\n );\n }\n}\n\nexport default withFocusable<ProductSummaryCardProps>()(ProductSummaryCard);\n","import api from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./BrowseCard.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './BrowseCard.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport { IShopBrowseCard } from '../../../types';\nimport Image from '@/components/atoms/Image';\n\nexport type BrowseCardProps = {\n browseCard: IShopBrowseCard;\n};\n\nexport class BrowseCardView extends React.Component<\n BrowseCardProps & WithFocusableProps\n> {\n render() {\n const { browseCard, focused } = this.props;\n const { name, caption, image, detail } = browseCard;\n\n return (\n <div\n className=\"browse-card focus-ring\"\n data-focused={focused}\n style={{\n backgroundImage: detail?.backgroundImage\n ? `url(${detail.backgroundImage})`\n : 'none',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n backgroundClip: 'padding-box',\n }}\n >\n <div className=\"browse-card-content\">\n {/* Tag Line */}\n {!!name && (\n <div className=\"browse-card-tagline T20 FONT_BOLD\">{name}</div>\n )}\n\n {/* Contextual Copy */}\n <div className=\"browse-card-caption T05_ALT\">\n {caption || 'Browse all merch'}\n </div>\n </div>\n\n {/* Team/League/Event Logo */}\n {image?.href && (\n <Image\n src={image.href}\n width={72}\n height={72}\n alt={name || 'Logo'}\n className=\"browse-card-logo-image\"\n />\n )}\n </div>\n );\n }\n}\n\nexport default withFocusable<BrowseCardProps>()(BrowseCardView);\n","import React from 'react';\nimport './ShopSection.styles.css';\nimport { IShopBrowseCard, IShopProduct, IShopSection } from '../../../types';\nimport ProductSummaryCard from '../ProductSummaryCard';\nimport { Direction, Layout } from '@/external/spatial-navigation/utils';\nimport { useScrollableContainer } from '@/components/core/ScrollableContainer';\nimport FocusableItem from '@/components/core/ScrollableContainer/FocusableItem';\nimport BrowseCard from '../BrowseCard';\n\nexport type ShopSectionProps = {\n sectionIndex: number;\n section: IShopSection;\n onArrowPress: (direction: Direction) => void;\n onItemClick: (\n item: IShopProduct | IShopBrowseCard,\n section: IShopSection,\n focusKey: string\n ) => void;\n};\n\nconst ShopSection: React.FC<ShopSectionProps> = ({\n section,\n sectionIndex,\n onArrowPress,\n onItemClick,\n}) => {\n const { scrollToFocusedElement } = useScrollableContainer();\n\n const onBecameFocused = (layout: Layout) => {\n scrollToFocusedElement(layout, {\n offsetTop: 40,\n });\n };\n\n const onEnterPress = (\n item: IShopProduct | IShopBrowseCard,\n section: IShopSection,\n focusKey: string\n ) => () => {\n onItemClick(item, section, focusKey);\n };\n\n return (\n <div className=\"shop-section\">\n <h2 className=\"shop-section-title TEXT_200\">{section.title}</h2>\n <div className=\"shop-section-items\">\n {section.items?.map((item, itemIndex) => {\n const focusKey = `shop-section-${sectionIndex}-item-${itemIndex}`;\n if (item.type === 'product') {\n return (\n <FocusableItem key={itemIndex}>\n <ProductSummaryCard\n product={item}\n onEnterPress={onEnterPress(item, section, focusKey)}\n onArrowPress={onArrowPress}\n onBecameFocused={onBecameFocused}\n focusKey={focusKey}\n />\n </FocusableItem>\n );\n } else if (item.type === 'browse') {\n return (\n <FocusableItem key={itemIndex}>\n <BrowseCard\n key={itemIndex}\n browseCard={item}\n onArrowPress={onArrowPress}\n onEnterPress={onEnterPress(item, section, focusKey)}\n onBecameFocused={onBecameFocused}\n focusKey={focusKey}\n />\n </FocusableItem>\n );\n } else {\n return null;\n }\n })}\n </div>\n </div>\n );\n};\n\nexport default ShopSection;\n","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ProductDetailView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport './ProductDetailView.styles.css';\nimport { IShopBrowseCard, IShopProduct, isShopProduct } from '../../types';\nimport ProductSummaryCard from '../components/ProductSummaryCard';\nimport ActionButton from '@/components/molecules/ActionButton';\nimport Image from '@/components/atoms/Image';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport BrowseCard from '../components/BrowseCard';\nimport { setImageDimensions } from '@/helpers/url';\n\nexport type ProductDetailViewProps = {\n product: IShopProduct | IShopBrowseCard;\n focusKey: string;\n onBecomeFocused?: () => void;\n};\n\nconst ProductDetail = (props: ProductDetailViewProps & WithFocusableProps) => {\n const { product, focused } = props;\n const detail = product.detail;\n\n const getBackgroundImage = () => {\n const bgImage = detail?.backgroundImage;\n if (!bgImage) {\n return null;\n }\n\n try {\n const url = new URL(bgImage);\n if (url.hostname.includes('stitcher')) {\n const newBgImage = setImageDimensions(bgImage, 570, 670);\n return newBgImage;\n }\n } catch {\n // Fallback to original check if URL parsing fails\n if (bgImage.includes('stitcher')) {\n const newBgImage = setImageDimensions(bgImage, 570, 670);\n return newBgImage;\n }\n }\n\n return bgImage;\n };\n\n const bgImage = getBackgroundImage();\n return (\n <div\n className=\"product-detail-card focus-ring\"\n data-focused={focused}\n style={{\n ...(bgImage && {\n backgroundImage: `url(${bgImage})`,\n backgroundSize: 'cover',\n backgroundClip: 'padding-box',\n backgroundPosition: 'center',\n }),\n }}\n >\n {/* Tag Line Title */}\n <div className=\"product-detail-title T70\">\n {detail?.title || 'Shop the look'}\n </div>\n\n {/* Mini Product Card (non-focusable) */}\n <div className=\"product-detail-product\">\n {isShopProduct(product) ? (\n <ProductSummaryCard product={product} focusable={false} />\n ) : (\n <BrowseCard\n browseCard={{\n ...product,\n name: undefined,\n caption: product.detail?.description,\n }}\n focusable={false}\n />\n )}\n </div>\n\n {/* QR Code */}\n {detail?.qrCode && (\n <div className=\"product-detail-qr\">\n <Image\n src={detail.qrCode}\n alt=\"QR Code\"\n className=\"product-detail-qr-image\"\n />\n </div>\n )}\n\n {/* User Instruction */}\n <div className=\"product-detail-instruction T04\">{detail?.link?.text}</div>\n\n {/* Dismiss Button */}\n <ActionButton data-focused={focused}>Dismiss</ActionButton>\n </div>\n );\n};\n\nconst FocusableProductDetail = withFocusable<ProductDetailViewProps>()(\n ProductDetail\n);\n\nconst ProductDetailView = (\n props: ProductDetailViewProps & WithFocusableProps\n) => {\n return (\n <div className=\"product-detail-view-wrapper\">\n <FocusableProductDetail {...props} />\n {/* Legal Disclaimer */}\n {props.product.detail?.disclaimer && (\n <div className=\"product-detail-disclaimer T02 TEXT_200 FONT_BOLD\">\n {props.product.detail.disclaimer}\n </div>\n )}\n </div>\n );\n};\n\nexport default ProductDetailView;\n","import api from \"!../../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ShopPromoView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport './ShopPromoView.styles.css';\nimport Image from '@/components/atoms/Image';\nimport { IShopDefaultItem } from '../../../types';\n\ntype Props = {\n promoData: IShopDefaultItem;\n};\n\nconst ShopPromoView = (props: Props & WithFocusableProps) => {\n const promo = props.promoData;\n\n return (\n <div\n className=\"shop-promo-view focus-ring T20\"\n data-focused={props.focused}\n style={{ backgroundImage: `url(${promo.detail?.backgroundImage})` }}\n >\n <Image\n src={promo.image?.href}\n alt=\"Promo Logo\"\n className=\"shop-promo-logo\"\n />\n <div className=\"shop-promo-title T30 FONT_BOLD\">\n {promo.detail?.title}\n </div>\n <Image\n src={promo.detail?.qrCode}\n alt=\"QR Code\"\n className=\"shop-promo-qr-code\"\n />\n <p className=\"shop-promo-description T20 FONT_BOLD\">\n {promo.detail?.link?.text}\n </p>\n </div>\n );\n};\n\nconst FocusablePromoView = withFocusable<Props>()(ShopPromoView);\n\nconst ShopPromoViewWrapper = (props: Props & WithFocusableProps) => {\n return (\n <div>\n <FocusablePromoView {...props} />\n <div className=\"promo-view-disclaimer T02 TEXT_200 FONT_BOLD\">\n {props.promoData.detail?.disclaimer}\n </div>\n </div>\n );\n};\n\nexport default ShopPromoViewWrapper;\n","import React, { Component } from 'react';\nimport './ShopView.styles.css';\nimport ScrollableContainer from '@/components/core/ScrollableContainer';\nimport SDK from '@/index';\nimport { Direction } from '@/external/spatial-navigation/utils';\nimport TabLoadErrorView from '../../components/TabLoadError';\nimport ShopViewModel, { ShopErrorState } from '../view-model/ShopViewModel';\nimport {\n IShopProduct,\n IShopSection,\n IShopBrowseCard,\n isShopProduct,\n IShopDefaultItem,\n} from '../types';\nimport ShopSection from './components/ShopSection';\nimport ProductDetailView from './ProductDetailView';\nimport ShopPromoView from './components/ShopPromoView';\nimport { setupMaxHeightToBottom } from '@/hooks/useMaxHeightToBottom';\n\ntype Unsubscribe = () => void;\n\ninterface State {\n container: HTMLDivElement | null;\n sections: IShopSection[];\n isDataLoading: boolean;\n errorState: ShopErrorState;\n selectedItem: IShopProduct | IShopBrowseCard | null;\n selectedShopSection: IShopSection | null;\n selectedItemFocusKey: string;\n promoData: IShopDefaultItem | null;\n}\n\nclass ShopView extends Component<{}, State> {\n private container: HTMLDivElement | null = null;\n private sectionsListener: Unsubscribe | null = null;\n private isDataLoadingListener: Unsubscribe | null = null;\n private errorStateListener: Unsubscribe | null = null;\n private promoDataListener: Unsubscribe | null = null;\n private maxHeightCleanup: Unsubscribe | null = null;\n private vm: ShopViewModel | null;\n\n constructor(props: {}) {\n super(props);\n this.vm = SDK.getMaestroEventViewModel()\n .shopViewModel as ShopViewModel | null;\n\n this.state = {\n container: null,\n sections: this.viewModel.sections.value,\n isDataLoading: this.viewModel.isDataLoading.value,\n errorState: this.viewModel.errorState.value,\n selectedItem: null,\n selectedItemFocusKey: '',\n promoData: this.viewModel.promoData.value,\n selectedShopSection: null,\n };\n }\n\n get viewModel() {\n if (!this.vm) {\n throw new Error('ShopViewModel is not initialized');\n }\n\n return this.vm;\n }\n\n componentDidMount(): void {\n this.setState({\n container: this.container,\n });\n\n this.maxHeightCleanup = setupMaxHeightToBottom(() => this.container);\n\n this.sectionsListener = this.viewModel.sections.subscribe((sections) => {\n this.setState({ sections });\n });\n\n this.isDataLoadingListener = this.viewModel.isDataLoading.subscribe(\n (isDataLoading) => {\n this.setState({ isDataLoading });\n }\n );\n\n this.errorStateListener = this.viewModel.errorState.subscribe(\n (errorState) => {\n this.setState({ errorState });\n }\n );\n\n this.promoDataListener = this.viewModel.promoData.subscribe((promoData) => {\n this.setState({ promoData });\n });\n\n // Initialize the view model\n this.viewModel.init();\n }\n\n componentWillUnmount() {\n this.sectionsListener && this.sectionsListener();\n this.isDataLoadingListener && this.isDataLoadingListener();\n this.errorStateListener && this.errorStateListener();\n this.promoDataListener && this.promoDataListener();\n this.maxHeightCleanup && this.maxHeightCleanup();\n\n // Clean up the view model\n this.viewModel.cleanup();\n }\n\n clearTabLoadFailure = () => {\n this.viewModel.clearTabLoadFailure();\n };\n\n onArrowPress = (d: Direction) => {\n if (d === 'left') {\n SDK.getMaestroEventViewModel().deliverFocus();\n }\n };\n\n onBecameFocused = () => {\n if (this.container) {\n this.container.scrollTop = 0;\n }\n };\n\n openItemDetail = (\n selectedItem: IShopProduct | IShopBrowseCard,\n selectedShopSection: IShopSection,\n selectedItemFocusKey: string\n ) => {\n const card = isShopProduct(selectedItem)\n ? 'product_summary'\n : ('want more' as const);\n this.viewModel.trackItemClick(card, selectedItem, selectedShopSection);\n\n this.setState(\n { selectedItem, selectedItemFocusKey, selectedShopSection },\n () => {\n SDK.getMaestroEventViewModel().navigation.setFocus(\n 'product-detail-view'\n );\n }\n );\n };\n\n closeProductDetail = () => {\n if (!this.state.selectedItem || !this.state.selectedShopSection) {\n return;\n }\n\n this.viewModel.trackItemClick(\n 'product_detail',\n this.state.selectedItem,\n this.state.selectedShopSection\n );\n\n this.setState({ selectedItem: null, selectedShopSection: null }, () => {\n if (this.state.selectedItemFocusKey) {\n // Added a small delay so all the focusable items are rendered and we have the ref of them\n setTimeout(() => {\n SDK.getMaestroEventViewModel().navigation.setFocus(\n this.state.selectedItemFocusKey\n );\n }, 100);\n }\n });\n };\n\n trackPromoEnterPress = () => {\n this.viewModel.trackItemClick('fallback', null, null);\n };\n\n renderContent = () => {\n const { sections, errorState, selectedItem, promoData } = this.state;\n\n // Show product detail view if a product is selected\n if (selectedItem) {\n return (\n <ProductDetailView\n product={selectedItem}\n onBecameFocused={this.onBecameFocused}\n onEnterPress={this.closeProductDetail}\n onArrowPress={this.onArrowPress}\n focusKey=\"product-detail-view\"\n />\n );\n }\n\n // Show error state if tab load failed\n if (errorState === 'tabLoadFailure') {\n return (\n <TabLoadErrorView\n onEnterPress={this.clearTabLoadFailure}\n onArrowPress={this.onArrowPress}\n />\n );\n }\n\n // Show promo view if shop is empty and promo data is available\n if ((errorState === 'emptyShop' || sections.length === 0) && promoData) {\n return (\n <ShopPromoView\n promoData={promoData}\n onEnterPress={this.trackPromoEnterPress}\n />\n );\n }\n\n // Render sections\n return sections.map((section, index) => (\n <ShopSection\n key={index}\n sectionIndex={index}\n section={section}\n onArrowPress={this.onArrowPress}\n onItemClick={this.openItemDetail}\n />\n ));\n };\n\n setContainerRef = (e: HTMLDivElement | null) => {\n if (e && !this.state.container) {\n this.setState({ container: e });\n }\n\n if (this.container !== e) {\n this.container = e;\n if (this.maxHeightCleanup) {\n this.maxHeightCleanup();\n }\n if (this.container) {\n this.maxHeightCleanup = setupMaxHeightToBottom(() => this.container);\n }\n }\n };\n\n render() {\n return (\n <ScrollableContainer\n scrollableContainerRef={this.state.container}\n containerTopOffset={40}\n data-has-product-selected={!!this.state.selectedItem}\n data-has-error={this.state.errorState !== 'none'}\n style={{\n maxHeight: 'auto',\n }}\n >\n <div className=\"shop-view\" ref={this.setContainerRef}>\n {this.renderContent()}\n <div className=\"shop-bottom-padding\" />\n </div>\n </ScrollableContainer>\n );\n }\n}\n\nexport default ShopView;\n","import ShopView from './ShopView';\n\nexport default ShopView;\n"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{102:function(e,n,t){"use strict";var a=t(0),r=t.n(a);function A(){return(A=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e}).apply(null,arguments)}function o(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,n||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class s extends r.a.Component{constructor(e){super(e),o(this,"state",{failed:!1}),o(this,"handleError",()=>{this.setState({failed:!0})})}render(){return this.state.failed?(console.warn("Image failed to load:",this.props.src),null):this.props.src?r.a.createElement("img",A({alt:this.props.alt||"Image"},this.props,{onError:this.handleError})):(console.warn("Image source is empty"),null)}}n.a=s},103:function(e,n,t){"use strict";var a=t(30);n.a=a.b},105:function(e,n,t){"use strict";var a=t(32);n.a=a.a},106:function(e,n,t){"use strict";var a=t(33).a,r=t(5),A=t.n(r),o=t(108),s={insert:"head",singleton:!1},l=(A()(o.a,s),o.a.locals,t(100)),i=t(0),c=t.n(i);function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e}).apply(null,arguments)}class p extends c.a.Component{render(){const{children:e,focused:n,focusKey:t,parentFocusKey:r,preferredChildFocusKey:A,forgetLastFocusedChild:o,trackChildren:s,autoRestoreFocus:l,blockNavigationOut:i,hasFocusedChild:p,focusable:u,onEnterPress:m,onEnterRelease:E,onBackPress:y,onArrowPress:g,onBecameFocused:v,onBecameBlurred:B,realFocusKey:k,setFocus:b,navigateByDirection:f,stealFocus:C,onUpdateFocus:h,onUpdateHasFocusedChild:x,...w}=this.props;return c.a.createElement(a,d({className:"action-button T05_ALT"},w),e)}}var u=Object(l.a)()(p);n.a=u},108:function(e,n,t){"use strict";var a=t(6),r=t.n(a),A=t(7),o=t.n(A)()(r.a);o.push([e.i,".action-button {\n padding: 23px 0;\n background-color: var(--sdk-surface5);\n color: var(--sdk-text100);\n}\n\n.action-button:hover,\n.action-button[data-focused='true'] {\n background-color: var(--sdk-accentPrimary);\n color: var(--sdk-text500);\n}\n","",{version:3,sources:["webpack://./src/components/molecules/ActionButton/ActionButton.styles.css"],names:[],mappings:"AAAA;EACE,eAAe;EACf,qCAAqC;EACrC,yBAAyB;AAC3B;;AAEA;;EAEE,0CAA0C;EAC1C,yBAAyB;AAC3B",sourcesContent:[".action-button {\n padding: 23px 0;\n background-color: var(--sdk-surface5);\n color: var(--sdk-text100);\n}\n\n.action-button:hover,\n.action-button[data-focused='true'] {\n background-color: var(--sdk-accentPrimary);\n color: var(--sdk-text500);\n}\n"],sourceRoot:""}]),n.a=o},109:function(e,n,t){"use strict";t.d(n,"b",(function(){return A})),t.d(n,"a",(function(){return o}));var a=t(0);function r(e){if(!e)return;const n=e.getBoundingClientRect();e.style.maxHeight=window.innerHeight-n.top+"px"}function A(){const e=Object(a.useRef)(null),n=Object(a.useCallback)(()=>{r(e.current)},[]);Object(a.useEffect)(()=>(window.addEventListener("resize",n),()=>{window.removeEventListener("resize",n)}),[n]);return Object(a.useCallback)(n=>{e.current=n,r(n)},[])}function o(e){const n=()=>{r(e())};return n(),window.addEventListener("resize",n),()=>{window.removeEventListener("resize",n)}}},111:function(e,n,t){"use strict";var a=t(6),r=t.n(a),A=t(7),o=t.n(A)()(r.a);o.push([e.i,".tab-load-error {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.tab-load-error h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.tab-load-error p {\n height: 86px;\n}\n","",{version:3,sources:["webpack://./src/modules/espn/components/TabLoadError/TabLoadError.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,YAAY;AACd",sourcesContent:[".tab-load-error {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.tab-load-error h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.tab-load-error p {\n height: 86px;\n}\n"],sourceRoot:""}]),n.a=o},112:function(e,n,t){"use strict";var a=t(100),r=t(0),A=t.n(r),o=t(5),s=t.n(o),l=t(111),i={insert:"head",singleton:!1},c=(s()(l.a,i),l.a.locals,t(106));class d extends A.a.Component{render(){const{focused:e,onEnterPress:n}=this.props;return A.a.createElement("div",{"data-focused":e,className:"tab-load-error focus-ring"},A.a.createElement("h3",{className:"T70"},"We dropped the ball."),A.a.createElement("p",{className:"T20"},"We're having trouble loading that for you. Please try again."),A.a.createElement(c.a,{"data-focused":e,onEnterPress:n},"Try Again"))}}var p=Object(a.a)()(d);n.a=p},124:function(e,n,t){"use strict";t.d(n,"a",(function(){return a}));const a="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCACQALgDAREAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+O4tkcn0/z79ev/161Mg3dv8AD64/rjp3oAC3b3+n6e/8+negAB/z/Prn/DgUAG736cflyP5Z/CgA3Hpn/wDWOf65/WgYBvQ+n6H+eR396BBuzjnn6/55Geo+vU5oANxznPIoANx9cf8A18/j3Iz160AG73H8vftjsPy+goAM/wCfzx/9b/8AXQAu7/Pv0z9ff3+mABM/5/8Arfl9KAFLHue3+eP89u4FACbj69P0HP5D/PWgAzznJ57/AP16ADd/n36c9s9j6980ALuOePXOP8849B0oATJ9enT24oACxHOfT/Ae3f8AzzQAbvU/rj6D/wCsPwoAMn8+vv8AX/HrQBX3fTpj19c9Tx0IP/1qBgW9+vX3/wA/yoEG70PX16/rz2/HFAxSx554znr+X5f0oEJn8x+f/wCr6UDDceuen/6v6UCDd/8AX/n29eD6/SgYbvc/X8uc+nA60ALuPr0/z/kdKADcT39vw/r7fn1OaAE3HjnpjH8vzoEG737d+Tzx9aBiZ/l9OPfpwP8APagQu7pz7cH05oGLvP8AnOfXHXI46j6d6AE3die2Ov4/p/n1oAN2O/4E/U+vPP8AKgA3YPXB6/59aADcfX8vp7e39fegA3c8n9cHP/6qADd1Pr1/qP06fhQIN2e/t/n/AD9epyALuP8An/PrzmgZW3H1/wA//qoAM5/Hn/Pbv9fSgQm739Md/Tt/n8qBjtx/yAP88UtNQ/r+rCZ9/wDPt+fb29qYBu9/19un0PUj0HXvQAbj1z/nP9O/4+9AC7++eOvtx69Py9e1ABuOMf5GPf8AxoA77RfCayxR3Wps+JAHS0RihCHlfPcfMCw5MabWUYDODuRQR2cGm6fagCCzt48dGESmT8ZGBkY+7MTQBbeNJBtdEdem11DD06EEUAYd74a0m8BP2cW0hHElriLBznmMAwtz1zHk88gnNAzgdX8O3ulAzA/arQHHnxgq0YPQTR/N5YyMB1LR5xllZlWgDnN3p/nj3/DP4UAG7/OPxxj36460CDd05/Dt6/rj8aBhu568/wCf8KAF3f5P6f047mj+tgE3f5+vr6/4HnjFABuzznOefr/nOPb8BQAZz/n/ABoAN3/1vz7fyx+lAEG4+v8An+nXHHFABuP6f4/55oATcfX/AD0/rQAbsd+n+fx6fjjHajQA3f4+3H+f50AG7oO/Pr/kUABP+fr/AJHWgBdx9f8APOP5/nR/X9fcB23hDRUvZH1G6USQ28gjgiYZWScBXLsDwViBTavIZ25xsIYC56jQIKACgAoAayq6srAMrAqysAQykYIIPBBBwQeCKAPFvEWmjStSlhjVhbSbZ7XIJAR/vRhj18qQMnUnYEZjk0DMLdjvyfb0oAXcev8A9b/Pt+fWgPxE3H1/z/j/AJ70AGeB+Yo/UA3Z6H8v88ZoAXcRzn/PvQAm/wBwPp/P/wCv29uy0D+v6/r8w3Ed/wDPvTD+u5X3Y+n/AOruMfh2pf1/XyAXd/n3/Xrjkd6P6/r+rgJu9/1P1ph8g3H1/L/Ofr/9agA3e/6/57/rQGobvfHX8c+/f8aA8hd/8vT0/wDrnjt+FL+v6/rzATPX9aYX/r+r9z3Tw7YjT9ItIiMSSxi5n9fNnAcqR28tNkX/AADPJJJANygQUAFABQAUAYmv6UmradLDj/SI1aW1fHzLMqnCZ/uTAeW46chsbkXAB4USfp/Tn9KWgw3ev+f8/n+Zo0D+vv8A6/rcXcfX/J7f/q/wo0ATd/L9O3+fr2p6AG457/y//V/jR/WoBn/D/wDXil/Xp94XDd7++c/5/wAj0p6BqLuPqaWgFfd3z/n8aNAE3H3/AM9x/j6e1GnoH+Qu4nP5/wA+9MA3c+4+v8/z6YpAJuPr/np+f8u1GgBuz6f/AK/85/8ArUABbn/P+effr0o/HUCxap591bQnpNPDEevSSRUPA5PXH8u1H9f1+If1/X9aH0eBjgcAcADtTELQAUAFABQAUANYkKxUbmCkhem4gcDPueKAPmtpCzMzYyxLEehJJ4HUAc4FLqNDd34c8+v09Pw6Uaf1/X4gG739vT/Pb/OKNA/r5i7un9P8+5+maNg+QmfwpgG4+v8An29/15paB/X9f8EXceuaNAE3H1P+f8/pRoBBuPr7f57/AOfSjQBN34n/AD9D059fSjQP6/q39feG7tx/nPH8/wAelGgBu/z+n8/1o/r9WHqG7/J/+v8AT8KNP60DUN3H+foP8/1oHcXdx1/z/X/OKNBE9pP9nurWYn5YbiGU/SORG+vReMfhQB9LgggEHIPII5BB6EGmIWgAoAKACgAoAQkAEk4ABJJ6ADkk/SgD5kmkV5ZXUbVeR3VfRWbIGBwMAjpSK16f1/WozcfX/Pr9ffrRp/X9fkINx/z/AJ/KjQLibs9+v+f6fpQFxd3+f8/Sj+vmO/8AX9f1+IFj74+uf89aP67CDefX8/8AP8/ejToAm73/AM9KBkG7/OP8/wD1+/agP63/AK/rQTefX6f5/wA/kaNNf6/r+uwg3H1/yf8AGj+vu/r/ADC/9foKW/z/AJ6f0/KjTT+v6/q4f1/Wv/BDd/k+/b6f59KNBhux6fTtRp/XmFw3Z/P/AD+P+PFH/B/r+vzDb+v6/wCHOk8KaXBrOrpaXQdrdYJ55VjfYxCKqL8w5A8yVOnJ6dM0aC6HvdrCba3gt97SeREkKyN990jUIjPjgyFAN7AAM+5gqghQxFigAoAKACgAoAr3UH2m2nt/MaITxPC0iAF0SRSjlM8B9pOxiGCthirAbSAeB+KtKh0bV5LS23i3aGGeISNvcLIpRwWwNw82OTBPIBxzjNIdzm93T/P+evejQf8AX9f1+Iu70/z/APX4oD+v6+8TP+f89KP6/wCHF/X/AAwbv0/n2/8Arf8A6qNB3At15o0F8v6/4cXf2z/k/wCTiiw/kG78P5f5H0o6Bf8Ar7itmjQLilv/AK/+etH9ff8AMX9eX9f8AN35f/r74o03H/X9bibv8f8AP1/X8KNA/rzDd6/55o0/r+vmAbv8/rRoFw3flz/hRp/X9f16hc9E+GpB1q7B+9/Zc2Pcfa7Mt+u3rz1x3o6iPbKYgoAKACgAoAKACgDxH4kkDXLXHB/sqAn/AMC73H48c57AUmNHnu7tn8v8/n/jRoP+v6/r/gGfejQLi7j60aB/X9fqJu9Sfzo0C/l+P/AF3Hv09/8AP+frRp/wwX8ugm7v+f8An/PPvRp/X5Brp/W4u71/z/npQBW3++KAf9fl/X9MXcfyoC/9f1YN/P8An/P/AOr2oDtp/X9dbBu/n/8Ar/lRp/Xb+tg+Qbvx/wA/jRoF/L9P63DcfX/J/pRp/X9bgG7/AD/n1o03C52XgK9S18SWiu2xbyKe0yem+RPMiUn/AG5YY0A/vsKEwZ9C0yQoAKACgAoAKACgD558eXyXfiS7VGDLZpDZgggjfEu+Zep5SeSRGHGGUgj1Xf8Ar+upS06f8McduP8ASloH9f18hC3v/n/P609A/r+t+n9MUPjv/WjT+v6/rQPUN35/5z1o0+QCbv8AP50aBf8Ar+v+GF3H/P8An3o0C4bv8/59qPw/rQCvu7f4/l19T/Klp/X9f8AP6/r+thN2Oh/SndB/Wwu73/X/AD9KV0H9f1/XmJu/z/n/ADij/MLsXd/nt6Yx+lAX8v6/rqG7/P8An0/SjT+v60C4Bv8AP/16en/AC4qyMjK6MUdSGVlbayspDBlYYIYEAhhggjINHYL+R6n4O8Zavd61Z6dql8Z7W4SWGPfDbq3niMvCXmSJZXLFDGNznc8i7snBBcT8j2umIKACgAoAKAPFfGHjTV7PWb3TtLvfItrdYoHKwwO/nmMNPslkiaRCrP5eVIKvGWQjOaLjPK2kZ2Z3dmd2LM7MWZmbkszE5ZmJyWJJJOSc0h/10G7v8e1Gn9f1/wAEL+X9eX9ai7v85+vv/n6ZpBcTd7/j/jj2p6Bf/gff26i7v8+/r+n09qWn9f1YNf6/rzDd+HP+f8+9GgXDd/L/AD7UBt0/4cTf74H+e/6UAV93v/n+VGgf15hu/n/9Y/nRdB/X3f5i7vf/AD/n/PoaBf8Ar+v68uxux+v/ANf8KNAv/X9f8OG7/H8aNPwC/wDX9XDf0/z/APX/AF+tAeQbu3v/AJ5o0C/+Wv8AX+YbuO9A7/f/AF/X5m/4Vfb4k0Q5xnUrRf8AvqUJjnPXOB/k00J/1/XmfVFMkKACgAoAKAPlXxRIW8R652xql6vXP3J3X+gI9BxzS0/r7ijC3e9LQL7Buxij+v68wv27Cbvfp/8Aro+QC7vwo0C/kG40f1/X9feFw3elH9f1/XULhu/+t0oC/r/XcN3H+fT/AD/WjT+v1C/3/wBP8yvu/wA8f5/z9KLhcN2OPz/H9KNAuG7vn8fr/n/PWjQP6/r+vIN3+fxouh6Bv9/8/wA/89aBBu/z/n6//Wo0DTsG7/PPaj7h3/r+ugbvU9ef84oF9/8Al5HQeFBv8S6EOf8AkKWbdR/BMr9+3y8jqRwOaYX8j6vpkhQAUAFABQB8neKsr4k11WHP9q3zfg9w7r+akEfXip6lf1/X6mDu/XrRoF9tv8g3etGnYExN2P8AP0ov/X9f5hf+v6Qu7/P9KNAv5XE3fh/+rn/PSj+v6/r5hf8Ary/ryFDf596P66h/X9f8OG7/AD+nb0/xo0/r+uof1/X6ib+/9OvH+f50B/X9P1/4cg3f0/z/ACoVgv5Cbz7/AP1v8/56UB8hd3v+v+fw6UB8vw/roJu6fT1/z60f1/X9dB/IN3f9f8P/AK1H9f0gF3e9HUX9f1cN/v8A5x0o0/UPl5irudgigszEKqqNzMxOAoUZJJPAA5J4FAX/AK/zPZfB/wAPdbsdU0zWNRa0tobdzcNaeZJJebjC4jRkWLyEId1L/vyyAMNu4Yqgb/r5nuNBIUAFABQAUAeGeL/h7rl5qmp6vp5tLmC4c3K2qyOl5u8tfMRY3iELsXU7Ns+58gbQxxSKTPGySpKkFWBIKkEEEcEEcEEdCCMjvSuguG7n/P8An/PWi4XDd7/T/P8An+lAw3//AFv/AK30/wAaBBu/Pp/WjQd/IN+e/wDn/Io/r+v68g+Qbv8AP5Yo0F+AbvX/AD3o0D+tivu9D7/5/LjtQP8Ay6/1uG76/j/n3oC6Ddnv/n/P/wCv1AE3f59qLiuG7/PH+fSgdySJJJpEigjkmlkYIkUaNJJIx6KqIC7MT/CASaAuekaH8MNe1MJNqGzR7ViCRcAyXroepW0Ujyzxgi5lgcHBEbCnYVz2HRPAfh3Q2imitWvLyIhlvL5hPIrjBDRRAJbRFGGY3SHzV4JlYgGnYR2dAgoAKACgAoAKACgDidc8AeHdcaSd7d7G9lJZ7uxYRNI5YszSwsHt5WdiTI5iEz55lFFh3PH9c+GPiDTN0tgE1m2GebVSl4qgZy9o7EsT0AtpbhieqqDSsO55xIJInaOZHjkjYo8cisjo6nBVkYBlYHgggEHORUh8hu7+f+e/5U9B6Bv/AM/5557/AI0v6/roL+v66BuPt9P1/P8AWmP+vl/XQN3+fTvQIN3v2xQPQr7v/wBX+fpRcLhu9evHv6/WgP6/r/hxN34/5/z0oC/9f1/w5e0/T9Q1WcW2m2dxeznkpbxNIVH96QgbY055eQqg7sM0fIL/ANf1/X6euaD8Iruby5/EF4trEQGaxsystyf9iW5Ia3hPXPki54OA6nkOwrnsWj+G9F0GIR6ZYQwNjDXBXzLuTPXzLmTdMQeuwMI1yQiKOKYjcoEFABQAUAFABQAUAFABQAUAFAGBrXhnRPEEZTU7GKWTbtS6QeVeRY+75dymJNqnny3Lwk/fjYcUDvY8c174R39v5k+gXa30Iyy2V2VhvFA6JHPhbadveQWnHHzHqrdh3PJr6wvtLuGtdQtLizuF5MVxE8bEdAy7gA6H+F0LI3VWIpev9f1/THdf1/X9eRS3f45/z/k0Bfy/r/gChv8AP4H/ABzRcPz/AK/rUN359/50XC+xX3e/+f0pBdCbvf05/wA9v8igD1zwN8N5dbji1bW/MttKfElrbITHc365BEjNjMFm4+66kTTqd0JjjKTPSXcTf9bn0Np+m2GlW62unWcFnboABHBGqAkcbnYfNI56tJIzOxJLMSSaYi9QIKACgAoAKACgAoAKACgAoAKACgAoAKACgChqGmafqtu1rqVnb3tuwP7ueNX2kjG+Nj88UgH3ZImSRTyrAjNAHzt46+HM2gpJqujmW60kZa4hfL3GnA8b2Ycz2vYykeZCP9duXM1S12KTPKN3+f8APP8An3oGJu9/8/596Xy/r8A/r+kQbvf/ADxRcNP6X6HoPw58KjxPrYe6TdpWmCO6vRj5bh2Y/ZrI9eLhkdpeObeGZAyO6MGtfkDZ9aKqoqoiqiIoVEUBVVVGFVVGAqqAAAAAAMCqIHUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFADWVXVkdVdHUq6MAysrDDKynIZWBIIIIIODxQB8k/ETwuPDGuH7MpGmakr3ViAPlhw/+kWYPf7O7IU/6YSwhizbyZenoUn/XyOA3/j3/AM/5/KkPRAD/2Q=="},151:function(e,n,t){"use strict";var a=t(6),r=t.n(a),A=t(7),o=t.n(A)()(r.a);o.push([e.i,".key-plays-view {\n display: block;\n overflow-y: auto;\n scrollbar-width: none;\n scroll-behavior: smooth;\n overscroll-behavior: contain;\n margin-top: 60px;\n}\n\n.key-plays-view::-webkit-scrollbar {\n display: none;\n}\n\n.key-plays-view > * {\n margin-bottom: 16px;\n}\n\n.key-plays-view > *:last-child {\n margin-bottom: 0;\n}\n\n.key-plays-section {\n display: block;\n position: relative;\n}\n\n.key-plays-section > * {\n margin-bottom: 16px;\n}\n\n.key-plays-section > *:last-child {\n margin-bottom: 0;\n}\n\n.key-plays-section-items {\n display: block;\n}\n\n.key-plays-section-items > * {\n margin-bottom: 20px;\n}\n\n.key-plays-section-items > *:last-child {\n margin-bottom: 0;\n}\n\n.key-plays-section-title {\n position: sticky;\n top: 0;\n z-index: 1;\n margin: 0;\n margin-bottom: 16px;\n}\n\n.key-plays-bottom-padding {\n height: calc(100vh - 240px);\n min-height: 400px;\n width: 100%;\n}\n","",{version:3,sources:["webpack://./src/modules/espn/key-plays/view/KeyPlaysView.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,gBAAgB;EAChB,qBAAqB;EACrB,uBAAuB;EACvB,4BAA4B;EAC5B,gBAAgB;AAClB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;EAChB,MAAM;EACN,UAAU;EACV,SAAS;EACT,mBAAmB;AACrB;;AAEA;EACE,2BAA2B;EAC3B,iBAAiB;EACjB,WAAW;AACb",sourcesContent:[".key-plays-view {\n display: block;\n overflow-y: auto;\n scrollbar-width: none;\n scroll-behavior: smooth;\n overscroll-behavior: contain;\n margin-top: 60px;\n}\n\n.key-plays-view::-webkit-scrollbar {\n display: none;\n}\n\n.key-plays-view > * {\n margin-bottom: 16px;\n}\n\n.key-plays-view > *:last-child {\n margin-bottom: 0;\n}\n\n.key-plays-section {\n display: block;\n position: relative;\n}\n\n.key-plays-section > * {\n margin-bottom: 16px;\n}\n\n.key-plays-section > *:last-child {\n margin-bottom: 0;\n}\n\n.key-plays-section-items {\n display: block;\n}\n\n.key-plays-section-items > * {\n margin-bottom: 20px;\n}\n\n.key-plays-section-items > *:last-child {\n margin-bottom: 0;\n}\n\n.key-plays-section-title {\n position: sticky;\n top: 0;\n z-index: 1;\n margin: 0;\n margin-bottom: 16px;\n}\n\n.key-plays-bottom-padding {\n height: calc(100vh - 240px);\n min-height: 400px;\n width: 100%;\n}\n"],sourceRoot:""}]),n.a=o},152:function(e,n,t){"use strict";var a=t(6),r=t.n(a),A=t(7),o=t.n(A)()(r.a);o.push([e.i,".key-play-card {\n display: block;\n background-color: var(--sdk-surface2);\n position: relative;\n}\n\n.key-play-card-content {\n display: block;\n width: 100%;\n position: relative;\n}\n\n.key-play-card-content .cardImage {\n display: inline-block;\n width: 33.33%;\n vertical-align: top;\n object-fit: cover;\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n}\n\n.key-play-card-content .cardImage[data-has-score='true'] {\n border-bottom-left-radius: 0;\n}\n\n.key-play-card-content .text-content {\n position: absolute;\n top: 50%;\n left: 33.33%;\n transform: translateY(-50%);\n width: 66.67%;\n padding: 44px 36px 44px 24px;\n text-align: center;\n box-sizing: border-box;\n}\n\n.key-play-card-content .multi-line {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: left;\n}\n\n.key-play-card progress {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n width: 100%;\n height: 8px;\n border-radius: 15px;\n background-color: var(--sdk-surface6);\n box-shadow: 0px 1px 3px 0px #10111366 inset;\n overflow: hidden;\n border-radius: 0;\n position: absolute;\n bottom: 0;\n}\n\n.key-play-card progress::-webkit-progress-bar,\n.key-play-card progress::-moz-progress-bar {\n background-color: var(--sdk-surface6);\n}\n\n.key-play-card progress::-webkit-progress-value {\n background-color: var(--sdk-highlightPrimary);\n}\n\n.key-play-card .score {\n display: block;\n text-align: center;\n padding: 10px;\n background-color: var(--sdk-surface4);\n border-bottom-left-radius: 10px;\n border-bottom-right-radius: 10px;\n}\n\n.key-play-card .score-team {\n display: inline-block;\n vertical-align: middle;\n margin: 0 32px;\n}\n\n.key-play-card .score-team > div {\n display: inline-block;\n vertical-align: middle;\n}\n\n.key-play-card .score > *:last-child .score-value {\n margin-left: 0;\n margin-right: 16px;\n}\n\n.key-play-card .score-team .score-value {\n margin-left: 16px;\n}\n\n.key-play-card .error-state {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: block;\n text-align: center;\n background-color: var(--sdk-surface2);\n}\n\n.key-play-card .error-state-text {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n}\n\n.key-play-card .error-state-text > * {\n margin: 8px;\n vertical-align: middle;\n}\n\n.key-play-card .error-state .error-state-inner {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.key-play-card .error-state path {\n fill: var(--sdk-alertWarning);\n}\n\n.key-play-card .non-recent-error-state {\n position: absolute;\n top: 18px;\n right: 18px;\n}\n","",{version:3,sources:["webpack://./src/modules/espn/key-plays/view/KeyPlayCardView.styles.css"],names:[],mappings:"AAAA;EACE,cAAc;EACd,qCAAqC;EACrC,kBAAkB;AACpB;;AAEA;EACE,cAAc;EACd,WAAW;EACX,kBAAkB;AACpB;;AAEA;EACE,qBAAqB;EACrB,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,4BAA4B;EAC5B,+BAA+B;AACjC;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;EAClB,QAAQ;EACR,YAAY;EACZ,2BAA2B;EAC3B,aAAa;EACb,4BAA4B;EAC5B,kBAAkB;EAClB,sBAAsB;AACxB;;AAEA;EACE,oBAAoB;EACpB,4BAA4B;EAC5B,qBAAqB;EACrB,gBAAgB;EAChB,uBAAuB;EACvB,gBAAgB;AAClB;;AAEA;EACE,wBAAwB;EACxB,qBAAqB;EACrB,gBAAgB;EAChB,WAAW;EACX,WAAW;EACX,mBAAmB;EACnB,qCAAqC;EACrC,2CAA2C;EAC3C,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,SAAS;AACX;;AAEA;;EAEE,qCAAqC;AACvC;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,qCAAqC;EACrC,+BAA+B;EAC/B,gCAAgC;AAClC;;AAEA;EACE,qBAAqB;EACrB,sBAAsB;EACtB,cAAc;AAChB;;AAEA;EACE,qBAAqB;EACrB,sBAAsB;AACxB;;AAEA;EACE,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,qCAAqC;AACvC;;AAEA;EACE,kBAAkB;EAClB,SAAS;EACT,QAAQ;EACR,gCAAgC;AAClC;;AAEA;EACE,WAAW;EACX,sBAAsB;AACxB;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;;AAEA;EACE,6BAA6B;AAC/B;;AAEA;EACE,kBAAkB;EAClB,SAAS;EACT,WAAW;AACb",sourcesContent:[".key-play-card {\n display: block;\n background-color: var(--sdk-surface2);\n position: relative;\n}\n\n.key-play-card-content {\n display: block;\n width: 100%;\n position: relative;\n}\n\n.key-play-card-content .cardImage {\n display: inline-block;\n width: 33.33%;\n vertical-align: top;\n object-fit: cover;\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n}\n\n.key-play-card-content .cardImage[data-has-score='true'] {\n border-bottom-left-radius: 0;\n}\n\n.key-play-card-content .text-content {\n position: absolute;\n top: 50%;\n left: 33.33%;\n transform: translateY(-50%);\n width: 66.67%;\n padding: 44px 36px 44px 24px;\n text-align: center;\n box-sizing: border-box;\n}\n\n.key-play-card-content .multi-line {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: left;\n}\n\n.key-play-card progress {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n width: 100%;\n height: 8px;\n border-radius: 15px;\n background-color: var(--sdk-surface6);\n box-shadow: 0px 1px 3px 0px #10111366 inset;\n overflow: hidden;\n border-radius: 0;\n position: absolute;\n bottom: 0;\n}\n\n.key-play-card progress::-webkit-progress-bar,\n.key-play-card progress::-moz-progress-bar {\n background-color: var(--sdk-surface6);\n}\n\n.key-play-card progress::-webkit-progress-value {\n background-color: var(--sdk-highlightPrimary);\n}\n\n.key-play-card .score {\n display: block;\n text-align: center;\n padding: 10px;\n background-color: var(--sdk-surface4);\n border-bottom-left-radius: 10px;\n border-bottom-right-radius: 10px;\n}\n\n.key-play-card .score-team {\n display: inline-block;\n vertical-align: middle;\n margin: 0 32px;\n}\n\n.key-play-card .score-team > div {\n display: inline-block;\n vertical-align: middle;\n}\n\n.key-play-card .score > *:last-child .score-value {\n margin-left: 0;\n margin-right: 16px;\n}\n\n.key-play-card .score-team .score-value {\n margin-left: 16px;\n}\n\n.key-play-card .error-state {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: block;\n text-align: center;\n background-color: var(--sdk-surface2);\n}\n\n.key-play-card .error-state-text {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n}\n\n.key-play-card .error-state-text > * {\n margin: 8px;\n vertical-align: middle;\n}\n\n.key-play-card .error-state .error-state-inner {\n position: relative;\n width: 100%;\n height: 100%;\n}\n\n.key-play-card .error-state path {\n fill: var(--sdk-alertWarning);\n}\n\n.key-play-card .non-recent-error-state {\n position: absolute;\n top: 18px;\n right: 18px;\n}\n"],sourceRoot:""}]),n.a=o},153:function(e,n,t){"use strict";var a=t(6),r=t.n(a),A=t(7),o=t.n(A)()(r.a);o.push([e.i,".sdk--key-play-error-state-unsupportedEvent {\n padding: 32px 24px 0 24px;\n display: block;\n}\n\n.sdk--key-play-error-state-unsupportedEvent::after {\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0) 0%,\n rgba(255, 255, 255, 0.08) 100%\n );\n}\n\n.sdk--key-play-error-state-unsupportedEvent h3 {\n margin: 0;\n}\n\n.sdk--key-play-error-state-unsupportedEvent p {\n margin: 0;\n color: var(--sdk-text200);\n}\n\n.sdk--key-play-error-state-unsupportedEvent > * {\n margin-bottom: 16px;\n}\n\n.sdk--key-play-error-state-unsupportedEvent > *:last-child {\n margin-bottom: 0;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent {\n overflow-y: hidden;\n max-height: calc(100vh - 86px - 60px - 60px);\n scrollbar-width: none;\n display: block;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n text-align: left;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent p {\n margin: 0;\n color: var(--sdk-text200);\n text-align: left;\n margin-top: 16px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent > *:last-child {\n margin-bottom: 0;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .main-content {\n display: block;\n text-align: center;\n padding: 32px 6px 32px 6px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples {\n display: block;\n position: relative;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples > * {\n margin-bottom: 16px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n > *:last-child {\n margin-bottom: 0;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples::after {\n content: '';\n width: 100%;\n height: 100%;\n position: absolute;\n bottom: 0;\n background: linear-gradient(\n 0deg,\n var(--sdk-surface1) 0%,\n rgba(0, 0, 0, 0) 30%\n );\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example {\n display: block;\n padding: 28px 24px;\n border-radius: 10px;\n background-color: var(--sdk-surface3);\n height: 128px;\n box-sizing: border-box;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .image {\n width: 72px;\n height: 72px;\n border-radius: 50%;\n background-color: var(--sdk-surface4);\n margin-right: 16px;\n display: inline-block;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .content {\n display: inline-block;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .headline {\n width: 180px;\n height: 26px;\n border-radius: 10px;\n background-color: var(--sdk-surface4);\n display: block;\n margin-bottom: 23px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .body {\n width: 107px;\n height: 23px;\n border-radius: 10px;\n background-color: var(--sdk-surface4);\n display: block;\n}\n\n.sdk--key-play-error-state-tabLoadFailure {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.sdk--key-play-error-state-tabLoadFailure h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.sdk--key-play-error-state-tabLoadFailure p {\n margin: 16px 0;\n height: 86px;\n}\n\n.sdk--key-play-error-state-tabLoadFailure > *:last-child {\n margin-bottom: 0;\n}\n","",{version:3,sources:["webpack://./src/modules/espn/key-plays/view/KeyPlayErrorStateView.styles.css"],names:[],mappings:"AAAA;EACE,yBAAyB;EACzB,cAAc;AAChB;;AAEA;EACE;;;;GAIC;AACH;;AAEA;EACE,SAAS;AACX;;AAEA;EACE,SAAS;EACT,yBAAyB;AAC3B;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,kBAAkB;EAClB,4CAA4C;EAC5C,qBAAqB;EACrB,cAAc;AAChB;;AAEA;EACE,SAAS;EACT,qCAAqC;EACrC,gBAAgB;AAClB;;AAEA;EACE,SAAS;EACT,yBAAyB;EACzB,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,0BAA0B;AAC5B;;AAEA;EACE,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;;;EAGE,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,SAAS;EACT;;;;GAIC;AACH;;AAEA;;;EAGE,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,qCAAqC;EACrC,aAAa;EACb,sBAAsB;AACxB;;AAEA;;;;EAIE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,qCAAqC;EACrC,kBAAkB;EAClB,qBAAqB;AACvB;;AAEA;;;;EAIE,qBAAqB;AACvB;;AAEA;;;;EAIE,YAAY;EACZ,YAAY;EACZ,mBAAmB;EACnB,qCAAqC;EACrC,cAAc;EACd,mBAAmB;AACrB;;AAEA;;;;EAIE,YAAY;EACZ,YAAY;EACZ,mBAAmB;EACnB,qCAAqC;EACrC,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,gBAAgB;AAClB",sourcesContent:[".sdk--key-play-error-state-unsupportedEvent {\n padding: 32px 24px 0 24px;\n display: block;\n}\n\n.sdk--key-play-error-state-unsupportedEvent::after {\n background: linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0) 0%,\n rgba(255, 255, 255, 0.08) 100%\n );\n}\n\n.sdk--key-play-error-state-unsupportedEvent h3 {\n margin: 0;\n}\n\n.sdk--key-play-error-state-unsupportedEvent p {\n margin: 0;\n color: var(--sdk-text200);\n}\n\n.sdk--key-play-error-state-unsupportedEvent > * {\n margin-bottom: 16px;\n}\n\n.sdk--key-play-error-state-unsupportedEvent > *:last-child {\n margin-bottom: 0;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent {\n overflow-y: hidden;\n max-height: calc(100vh - 86px - 60px - 60px);\n scrollbar-width: none;\n display: block;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n text-align: left;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent p {\n margin: 0;\n color: var(--sdk-text200);\n text-align: left;\n margin-top: 16px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent > *:last-child {\n margin-bottom: 0;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .main-content {\n display: block;\n text-align: center;\n padding: 32px 6px 32px 6px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples {\n display: block;\n position: relative;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples > * {\n margin-bottom: 16px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n > *:last-child {\n margin-bottom: 0;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples::after {\n content: '';\n width: 100%;\n height: 100%;\n position: absolute;\n bottom: 0;\n background: linear-gradient(\n 0deg,\n var(--sdk-surface1) 0%,\n rgba(0, 0, 0, 0) 30%\n );\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example {\n display: block;\n padding: 28px 24px;\n border-radius: 10px;\n background-color: var(--sdk-surface3);\n height: 128px;\n box-sizing: border-box;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .image {\n width: 72px;\n height: 72px;\n border-radius: 50%;\n background-color: var(--sdk-surface4);\n margin-right: 16px;\n display: inline-block;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .content {\n display: inline-block;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .headline {\n width: 180px;\n height: 26px;\n border-radius: 10px;\n background-color: var(--sdk-surface4);\n display: block;\n margin-bottom: 23px;\n}\n\n.sdk--key-play-error-state-unpopulatedEvent\n .unpopulatedEvent-examples\n .example\n .body {\n width: 107px;\n height: 23px;\n border-radius: 10px;\n background-color: var(--sdk-surface4);\n display: block;\n}\n\n.sdk--key-play-error-state-tabLoadFailure {\n display: block;\n padding: 24px;\n background-color: var(--sdk-surface4);\n}\n\n.sdk--key-play-error-state-tabLoadFailure h3 {\n margin: 0;\n font-family: var(--sdk-font-headline);\n}\n\n.sdk--key-play-error-state-tabLoadFailure p {\n margin: 16px 0;\n height: 86px;\n}\n\n.sdk--key-play-error-state-tabLoadFailure > *:last-child {\n margin-bottom: 0;\n}\n"],sourceRoot:""}]),n.a=o},242:function(e,n,t){"use strict";t.r(n),t.d(n,"KeyPlays",(function(){return T})),t.d(n,"default",(function(){return D}));var a=t(0),r=t.n(a),A=t(102),o=t(124),s=t(5),l=t.n(s),i=t(152),c={insert:"head",singleton:!1},d=(l()(i.a,c),i.a.locals,t(8)),p=t(105),u=t(100);class m extends r.a.Component{render(){const{awayTeamScore:e,homeTeamScore:n,homeTeamName:t,awayTeamName:a}=this.props;return e&&n&&t&&a?r.a.createElement("div",{className:"score"},r.a.createElement("div",{className:"score-team T05_ALT"},r.a.createElement("span",null,t),r.a.createElement("span",{className:"T30 score-value FONT_BOLD"},n)),r.a.createElement("div",{className:"score-team T05_ALT"},r.a.createElement("span",{className:"T30 score-value FONT_BOLD"},e),r.a.createElement("span",null,a))):null}}var E=t(29),y=t(31);function g(){return(g=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e}).apply(null,arguments)}function v(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,n||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class B extends r.a.Component{constructor(e){super(e),v(this,"failedClipListener",()=>{}),v(this,"vm",void 0),v(this,"onLoad",()=>{this.setState({imageLoaded:!0})}),v(this,"renderImage",()=>{const{playerImageUrl:e,teamImageUrl:n,thumbnailImageUrl:t,isScoring:a}=this.props;return e?r.a.createElement(A.a,{src:e,crossOrigin:"anonymous",alt:"Key Play Player Image",className:"cardImage",onLoad:this.onLoad,style:{display:this.state.imageLoaded?"block":"none"},"data-has-score":a}):n?r.a.createElement(A.a,{src:n,crossOrigin:"anonymous",alt:"Key Play Team Image",className:"cardImage",onLoad:this.onLoad,style:{display:this.state.imageLoaded?"block":"none"},"data-has-score":a}):t?r.a.createElement(A.a,{src:t,crossOrigin:"anonymous",alt:"Key Play Thumbnail Image",className:"cardImage",onLoad:this.onLoad,style:{display:this.state.imageLoaded?"block":"none"}}):null}),this.vm=d.default.getMaestroEventViewModel().keyPlaysViewModel,this.state={failedClip:this.viewModel.failedClips.value[e.clipID]||null,imageLoaded:!1}}get viewModel(){if(!this.vm)throw new Error("KeyPlaysViewModel is not initialized");return this.vm}componentDidMount(){this.failedClipListener=this.viewModel.failedClips.subscribe(e=>{this.setState({failedClip:e[this.props.clipID]})})}componentWillUnmount(){this.failedClipListener&&this.failedClipListener()}render(){const{clipID:e,description:n,isPlaying:t,playbackProgress:a,isScoring:s,focused:l,awayTeamScore:i,homeTeamScore:c,homeTeamName:d,awayTeamName:u}=this.props,{failedClip:E}=this.state;return r.a.createElement("div",{className:"key-play-card focus-ring",id:e,"data-focused":l},r.a.createElement("div",{className:"key-play-card-content"},!this.state.imageLoaded&&r.a.createElement(A.a,{src:o.a,crossOrigin:"anonymous",alt:"Key Play Thumbnail Image",className:"cardImage"}),this.renderImage(),r.a.createElement("div",{className:"text-content T05_ALT"},r.a.createElement("div",{className:"multi-line"},n))),t&&null!==a&&r.a.createElement("progress",{value:a,max:"1"}),s&&r.a.createElement(m,{awayTeamScore:i,homeTeamScore:c,homeTeamName:d,awayTeamName:u}),"recentFailure"===E&&r.a.createElement("div",{className:"error-state"},r.a.createElement("div",{className:"error-state-inner"},r.a.createElement("div",{className:"error-state-text"},r.a.createElement(p.a,{iconName:"warning",width:21.6,height:18.7}),r.a.createElement("span",{className:"T05_ALT"},"Could not play this clip. ")))),"nonRecentFailure"===E&&r.a.createElement("div",{className:"non-recent-error-state"},r.a.createElement(p.a,{iconName:"warning",width:21.6,height:18.7})))}}const k=Object(u.a)()(B);var b=e=>{const{scrollToFocusedElement:n}=Object(y.a)(),t=Object(a.useCallback)(e=>{"left"===e&&d.default.getMaestroEventViewModel().deliverFocus()},[]),A=Object(a.useCallback)(e=>{n(e)},[n]);return r.a.createElement(E.a,null,r.a.createElement(k,g({},e,{onArrowPress:t,onBecameFocused:A})))},f=t(151),C={insert:"head",singleton:!1},h=(l()(f.a,C),f.a.locals,t(153)),x={insert:"head",singleton:!1},w=(l()(h.a,x),h.a.locals,t(112)),P=t(109);function Q(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,n||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}const N=()=>{const e=Object(P.b)();return r.a.createElement("div",{ref:e,className:"sdk--key-play-error-state-unpopulatedEvent"},r.a.createElement("div",{className:"main-content"},r.a.createElement("h3",{className:"T70"},"Good things come to those who wait!"),r.a.createElement("p",{className:"T20"},"When a key play occurs we will serve them up for you here.")),r.a.createElement("div",{className:"unpopulatedEvent-examples"},Array.from({length:4}).map((e,n)=>r.a.createElement("div",{key:n,className:"example"},r.a.createElement("div",{className:"image"}),r.a.createElement("div",{className:"content"},r.a.createElement("div",{className:"headline"}),r.a.createElement("div",{className:"body"}))))))};class j extends r.a.Component{render(){return r.a.createElement("div",{className:"sdk--key-play-error-state-unsupportedEvent"},r.a.createElement("h3",{className:"T70"},"No Key Plays Available"),r.a.createElement("svg",{viewBox:"0 0 520 359",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r.a.createElement("g",{opacity:"0.16"},r.a.createElement("path",{d:"M146.334 219.427V244.686L168.723 198.187V38.0215L165.279 40.3178V188.427L146.334 219.427Z",fill:"#6D6D6D"}),r.a.createElement("rect",{x:"94.6687",y:"219.427",width:"51.6662",height:"25.259",fill:"#777777"}),r.a.createElement("rect",{x:"145.187",y:"39.1694",width:"20.6665",height:"149.258",fill:"#666666"}),r.a.createElement("path",{d:"M146.335 219.427H94.6687L143.465 187.279H167.001L146.335 219.427Z",fill:"#666666"}),r.a.createElement("path",{d:"M375.389 219.427V244.686L353 198.187V38.0215L356.445 40.3178V188.427L375.389 219.427Z",fill:"#6D6D6D"}),r.a.createElement("rect",{width:"51.6662",height:"25.259",transform:"matrix(-1 0 0 1 427.055 219.427)",fill:"#777777"}),r.a.createElement("rect",{width:"20.6665",height:"149.258",transform:"matrix(-1 0 0 1 376.537 39.1694)",fill:"#666666"}),r.a.createElement("path",{d:"M375.389 219.427H427.055L378.259 187.279H354.722L375.389 219.427Z",fill:"#666666"}),r.a.createElement("path",{d:"M23.4844 141.354H496.517L410.981 121.835H93.5208L23.4844 141.354Z",fill:"#B1B1B1"}),r.a.createElement("rect",{x:"23.4844",y:"141.354",width:"473.033",height:"19.5183",fill:"#777777"}),r.a.createElement("rect",{x:"72.8545",y:"51.7993",width:"374.293",height:"45.9255",fill:"#CDCDCD"}))))}}class X extends r.a.Component{constructor(...e){super(...e),Q(this,"onArrowPress",e=>{"left"===e&&d.default.getMaestroEventViewModel().deliverFocus()})}render(){const{errorState:e,onRetry:n}=this.props;return"unsupportedEvent"===e?r.a.createElement(j,null):"unpopulatedEvent"===e?r.a.createElement(N,null):"tabLoadFailure"===e?r.a.createElement(w.a,{onEnterPress:n,onArrowPress:this.onArrowPress}):null}}var I=X,S=t(103);function H(e,n,t){return(n=function(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,n||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class T extends a.Component{constructor(e){var n,t,a;super(e),H(this,"container",null),H(this,"playbackProgressUnsub",null),H(this,"playbackIndexUnsub",null),H(this,"itemsUnsub",null),H(this,"maxHeightCleanup",null),H(this,"vm",void 0),H(this,"handlePlayClip",e=>async()=>{await this.viewModel.playKeyPlay(e)}),H(this,"setContainerRef",e=>{e&&!this.container&&(this.container=e),this.container!==e&&(this.container=e,this.maxHeightCleanup&&this.maxHeightCleanup(),this.container&&(this.maxHeightCleanup=Object(P.a)(()=>this.container)))}),this.vm=d.default.getMaestroEventViewModel().keyPlaysViewModel,this.state={scrollableContainer:null,playbackProgress:null!==(n=this.viewModel.currentClipPlaybackProgress.value)&&void 0!==n?n:null,playbackIndex:null!==(t=this.viewModel.currentlyPlayingClipIndex.value)&&void 0!==t?t:null,items:null!==(a=this.viewModel.filteredItems.value)&&void 0!==a?a:[]}}get viewModel(){if(!this.vm)throw new Error("KeyPlaysViewModel is not initialized");return this.vm}componentDidMount(){this.playbackProgressUnsub=this.viewModel.currentClipPlaybackProgress.subscribe(e=>{this.setState({playbackProgress:null!=e?e:null})}),this.playbackIndexUnsub=this.viewModel.currentlyPlayingClipIndex.subscribe(e=>{this.setState({playbackIndex:null!=e?e:null})}),this.itemsUnsub=this.viewModel.filteredItems.subscribe(e=>{this.setState({items:e})}),this.setState({scrollableContainer:this.container}),this.maxHeightCleanup=Object(P.a)(()=>this.container)}componentWillUnmount(){this.playbackProgressUnsub&&this.playbackProgressUnsub(),this.playbackIndexUnsub&&this.playbackIndexUnsub(),this.itemsUnsub&&this.itemsUnsub(),this.maxHeightCleanup&&this.maxHeightCleanup()}render(){const{playbackProgress:e,playbackIndex:n,items:t,scrollableContainer:a}=this.state;return r.a.createElement(S.a,{scrollableContainerRef:a,containerTopOffset:32},r.a.createElement("div",{ref:this.setContainerRef,className:"key-plays-view"},t.map((t,a)=>r.a.createElement("div",{key:"section-"+a,className:"key-plays-section"},t.title&&r.a.createElement("h3",{className:"key-plays-section-title T10"},t.title),r.a.createElement("div",{className:"key-plays-section-items"},t.items.map(t=>{var a,A;const o=null!==(a=null===(A=this.vm)||void 0===A?void 0:A.allItems.findIndex(e=>e.id===t.id))&&void 0!==a?a:-1;return r.a.createElement(b,{key:t.id,id:t.id,clipID:t.clipID,description:t.description,awayTeamName:t.awayTeamName,homeTeamName:t.homeTeamName,awayTeamScore:t.awayTeamScore,homeTeamScore:t.homeTeamScore,playerImageUrl:t.playerImageUrl,teamImageUrl:t.teamImageUrl,thumbnailImageUrl:t.thumbnailImageUrl,isPlaying:this.viewModel.isCurrentlyPlaying(o),isScoring:Boolean(t.awayTeamScore&&t.homeTeamScore),playbackProgress:o===n?e:null,onEnterPress:this.handlePlayClip(o)})})))),r.a.createElement("div",{className:"key-plays-bottom-padding"})))}}class D extends a.Component{constructor(e){super(e),H(this,"errorStateUnsub",null),H(this,"vm",void 0),H(this,"handleRetry",async()=>{await this.viewModel.userRequestedNewKeyPlaysData()}),this.vm=d.default.getMaestroEventViewModel().keyPlaysViewModel,this.state={errorState:this.viewModel.errorState.value}}get viewModel(){if(!this.vm)throw new Error("KeyPlaysViewModel is not initialized");return this.vm}componentDidMount(){this.errorStateUnsub=this.viewModel.errorState.subscribe(e=>{this.setState({errorState:e})}),this.viewModel.init()}componentWillUnmount(){this.errorStateUnsub&&this.errorStateUnsub()}render(){const{errorState:e}=this.state;return e?r.a.createElement(I,{errorState:e,onRetry:this.handleRetry}):r.a.createElement(T,null)}}}}]);
|
|
2
|
-
//# sourceMappingURL=6.maestro-web-sdk.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///./src/components/atoms/Image/index.tsx","webpack:///./src/components/core/ScrollableContainer/index.ts","webpack:///./src/components/atoms/SvgIcon/index.ts","webpack:///./src/components/atoms/BaseButton/index.ts","webpack:///./src/components/molecules/ActionButton/ActionButton.styles.css?ed9b","webpack:///./src/components/molecules/ActionButton/ActionButton.tsx","webpack:///./src/components/molecules/ActionButton/index.ts","webpack:///./src/components/molecules/ActionButton/ActionButton.styles.css","webpack:///./src/hooks/useMaxHeightToBottom.ts","webpack:///./src/modules/espn/components/TabLoadError/TabLoadError.styles.css","webpack:///./src/modules/espn/components/TabLoadError/TabLoadError.styles.css?f939","webpack:///./src/modules/espn/components/TabLoadError/TabLoadError.tsx","webpack:///./src/modules/espn/components/TabLoadError/index.ts","webpack:///./src/modules/espn/key-plays/constants.ts","webpack:///./src/modules/espn/key-plays/view/KeyPlaysView.styles.css","webpack:///./src/modules/espn/key-plays/view/KeyPlayCardView.styles.css","webpack:///./src/modules/espn/key-plays/view/KeyPlayErrorStateView.styles.css","webpack:///./src/modules/espn/key-plays/view/KeyPlayCardView.styles.css?c352","webpack:///./src/modules/espn/key-plays/view/KeyPlayCardScoreTagView.tsx","webpack:///./src/modules/espn/key-plays/view/KeyPlayCardView.tsx","webpack:///./src/modules/espn/key-plays/view/KeyPlaysView.styles.css?eaad","webpack:///./src/modules/espn/key-plays/view/KeyPlayErrorStateView.styles.css?d22f","webpack:///./src/modules/espn/key-plays/view/KeyPlayErrorStateView.tsx","webpack:///./src/modules/espn/key-plays/view/KeyPlaysView.tsx"],"names":["Image","React","Component","constructor","props","super","_defineProperty","failed","this","setState","render","state","console","warn","src","createElement","_extends","alt","onError","handleError","ScrollableContainer","Icon","BaseButton","options","locals","ActionButton","children","focused","_focused","focusKey","_focusKey","parentFocusKey","_parentFocusKey","preferredChildFocusKey","_preferredChildFocusKey","forgetLastFocusedChild","_forgetLastFocusedChild","trackChildren","_trackChildren","autoRestoreFocus","_autoRestoreFocus","blockNavigationOut","_blockNavigationOut","hasFocusedChild","_hasFocusedChild","focusable","_focusable","onEnterPress","_onEnterPress","onEnterRelease","_onEnterRelease","onBackPress","_onBackPress","onArrowPress","_onArrowPress","onBecameFocused","_onBecameFocused","onBecameBlurred","_onBecameBlurred","realFocusKey","_realFocusKey","setFocus","_setFocus","navigateByDirection","_navigateByDirection","stealFocus","_stealFocus","onUpdateFocus","_onUpdateFocus","onUpdateHasFocusedChild","_onUpdateHasFocusedChild","buttonProps","className","withFocusable","___CSS_LOADER_EXPORT___","push","module","i","calculateMaxHeight","element","rect","getBoundingClientRect","style","maxHeight","window","innerHeight","top","useMaxHeightToBottom","elementRef","useRef","handleResize","useCallback","current","useEffect","addEventListener","removeEventListener","setupMaxHeightToBottom","getElement","TabLoadErrorView","data-focused","BASE_64_KEY_PLAY_THUMBNAIL_FALLBACK","ScoreCard","awayTeamScore","homeTeamScore","homeTeamName","awayTeamName","KeyPlayCardView","imageLoaded","playerImageUrl","teamImageUrl","thumbnailImageUrl","isScoring","crossOrigin","onLoad","display","data-has-score","vm","SDK","getMaestroEventViewModel","keyPlaysViewModel","failedClip","viewModel","failedClips","value","clipID","Error","componentDidMount","failedClipListener","subscribe","componentWillUnmount","description","isPlaying","playbackProgress","id","renderImage","max","iconName","width","height","FocusableKeyPlayCard","KeyPlayCard","scrollToFocusedElement","useScrollableContainer","handleLeftPressed","d","deliverFocus","layout","FocusableItem","UnpopulatedEvent","maxHeightRef","ref","Array","from","length","map","_","key","UnsupportedEvent","viewBox","fill","xmlns","opacity","x","y","transform","KeyPlayErrorStateView","args","errorState","onRetry","KeyPlays","_this$viewModel$curre","_this$viewModel$curre2","_this$viewModel$filte","index","async","playKeyPlay","e","container","maxHeightCleanup","scrollableContainer","currentClipPlaybackProgress","playbackIndex","currentlyPlayingClipIndex","items","filteredItems","playbackProgressUnsub","playbackIndexUnsub","itemsUnsub","scrollableContainerRef","containerTopOffset","setContainerRef","section","sectionIndex","title","item","_this$vm$allItems$fin","_this$vm","absoluteIndex","allItems","findIndex","vmItem","isCurrentlyPlaying","Boolean","handlePlayClip","KeyPlaysWithErrorState","userRequestedNewKeyPlaysData","errorStateUnsub","init","handleRetry"],"mappings":"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","file":"6.maestro-web-sdk.esm.js","sourcesContent":["import React from 'react';\nimport { ImgHTMLAttributes } from 'react';\n\ninterface ImageProps extends ImgHTMLAttributes<HTMLImageElement> {}\n\nclass Image extends React.Component<ImageProps> {\n state = {\n failed: false,\n };\n\n constructor(props: ImageProps) {\n super(props);\n }\n\n handleError = () => {\n this.setState({ failed: true });\n };\n\n render() {\n if (this.state.failed) {\n console.warn('Image failed to load:', this.props.src);\n return null;\n }\n\n if (!this.props.src) {\n console.warn('Image source is empty');\n return null;\n }\n\n return (\n <img\n alt={this.props.alt || 'Image'}\n {...this.props}\n onError={this.handleError}\n />\n );\n }\n}\n\nexport default Image;\n","import ScrollableContainer from './ScrollableContainer';\n\nexport { ScrollableContainerContext } from './ScrollableContainer';\nexport { useScrollableContainer } from './useScrollableContainer';\nexport { default as FocusableItem } from './FocusableItem';\nexport type { ScrollableContainerContextType } from './ScrollableContainer';\nexport default ScrollableContainer;\n","import Icon from './Icon';\n\nexport default Icon;\n","import BaseButton from './BaseButton';\n\nexport default BaseButton;\n","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./ActionButton.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import BaseButton from '@/components/atoms/BaseButton';\nimport './ActionButton.styles.css';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport React from 'react';\n\ntype SpatialNavigationInjectedProps = {\n realFocusKey?: string;\n setFocus?: (focusKey: string) => void;\n navigateByDirection?: (...args: any[]) => any;\n stealFocus?: () => void;\n onUpdateFocus?: (focused: boolean) => void;\n onUpdateHasFocusedChild?: (hasFocusedChild: boolean) => void;\n};\n\ntype Props = React.PropsWithChildren<\n React.ButtonHTMLAttributes<HTMLButtonElement> &\n WithFocusableProps &\n SpatialNavigationInjectedProps\n>;\n\nclass ActionButton extends React.Component<Props, {}> {\n render() {\n const {\n children,\n // spatial-navigation props (must not hit DOM)\n focused: _focused,\n focusKey: _focusKey,\n parentFocusKey: _parentFocusKey,\n preferredChildFocusKey: _preferredChildFocusKey,\n forgetLastFocusedChild: _forgetLastFocusedChild,\n trackChildren: _trackChildren,\n autoRestoreFocus: _autoRestoreFocus,\n blockNavigationOut: _blockNavigationOut,\n hasFocusedChild: _hasFocusedChild,\n focusable: _focusable,\n onEnterPress: _onEnterPress,\n onEnterRelease: _onEnterRelease,\n onBackPress: _onBackPress,\n onArrowPress: _onArrowPress,\n onBecameFocused: _onBecameFocused,\n onBecameBlurred: _onBecameBlurred,\n // injected/internal props (also must not hit DOM)\n realFocusKey: _realFocusKey,\n setFocus: _setFocus,\n navigateByDirection: _navigateByDirection,\n stealFocus: _stealFocus,\n onUpdateFocus: _onUpdateFocus,\n onUpdateHasFocusedChild: _onUpdateHasFocusedChild,\n ...buttonProps\n } = this.props;\n\n return (\n <BaseButton className=\"action-button T05_ALT\" {...buttonProps}>\n {children}\n </BaseButton>\n );\n }\n}\n\nexport default withFocusable()(ActionButton);\n","import ActionButton from './ActionButton';\n\nexport default ActionButton;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".action-button {\\n padding: 23px 0;\\n background-color: var(--sdk-surface5);\\n color: var(--sdk-text100);\\n}\\n\\n.action-button:hover,\\n.action-button[data-focused='true'] {\\n background-color: var(--sdk-accentPrimary);\\n color: var(--sdk-text500);\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/molecules/ActionButton/ActionButton.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,eAAe;EACf,qCAAqC;EACrC,yBAAyB;AAC3B;;AAEA;;EAEE,0CAA0C;EAC1C,yBAAyB;AAC3B\",\"sourcesContent\":[\".action-button {\\n padding: 23px 0;\\n background-color: var(--sdk-surface5);\\n color: var(--sdk-text100);\\n}\\n\\n.action-button:hover,\\n.action-button[data-focused='true'] {\\n background-color: var(--sdk-accentPrimary);\\n color: var(--sdk-text500);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { useCallback, useEffect, useRef } from 'react';\n\n/**\n * Calculates and sets maxHeight on an element to fill remaining viewport height.\n * Updates on window resize.\n */\nfunction calculateMaxHeight(element: HTMLElement | null): void {\n if (!element) return;\n const rect = element.getBoundingClientRect();\n element.style.maxHeight = `${window.innerHeight - rect.top}px`;\n}\n\n/**\n * Hook for functional components.\n * Returns a ref callback that sets up maxHeight calculation with resize listener.\n */\nexport function useMaxHeightToBottom(): (\n element: HTMLDivElement | null\n) => void {\n const elementRef = useRef<HTMLDivElement | null>(null);\n\n const handleResize = useCallback(() => {\n calculateMaxHeight(elementRef.current);\n }, []);\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [handleResize]);\n\n const refCallback = useCallback((element: HTMLDivElement | null) => {\n elementRef.current = element;\n calculateMaxHeight(element);\n }, []);\n\n return refCallback;\n}\n\n/**\n * Utility for class components.\n * Call in componentDidMount, returns cleanup function for componentWillUnmount.\n */\nexport function setupMaxHeightToBottom(\n getElement: () => HTMLElement | null\n): () => void {\n const handleResize = () => {\n calculateMaxHeight(getElement());\n };\n\n // Initial calculation\n handleResize();\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n}\n\nexport default useMaxHeightToBottom;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".tab-load-error {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.tab-load-error h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.tab-load-error p {\\n height: 86px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/components/TabLoadError/TabLoadError.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,YAAY;AACd\",\"sourcesContent\":[\".tab-load-error {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.tab-load-error h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.tab-load-error p {\\n height: 86px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./TabLoadError.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport React from 'react';\nimport './TabLoadError.styles.css';\nimport ActionButton from '@/components/molecules/ActionButton';\n\nclass TabLoadErrorView extends React.Component<WithFocusableProps> {\n render() {\n const { focused, onEnterPress } = this.props;\n\n return (\n <div data-focused={focused} className=\"tab-load-error focus-ring\">\n <h3 className=\"T70\">We dropped the ball.</h3>\n <p className=\"T20\">\n {\"We're having trouble loading that for you. Please try again.\"}\n </p>\n <ActionButton data-focused={focused} onEnterPress={onEnterPress}>\n Try Again\n </ActionButton>\n </div>\n );\n }\n}\n\nexport default withFocusable()(TabLoadErrorView);\n","import TabLoadErrorView from './TabLoadError';\n\nexport default TabLoadErrorView;\n","import IMaestroKeyPlaysResponse from './interfaces/IKeyPlaysResponse';\n\nexport const KEY_PLAYS_RESPONSE_MOCK_DATA: IMaestroKeyPlaysResponse = {\n entities: {\n team: {\n '251': {\n id: '251',\n displayName: 'Texas Longhorns',\n color: 'c15d26',\n alternateColor: 'ffffff',\n shortName: 'Texas',\n homeAway: 'away',\n displayOrder: '1',\n logoRef:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/teams/251.jpg?w=184&h=144',\n logoDarkRef: 'https://a.espncdn.com/i/teamlogos/ncaa/500-dark/251.png',\n },\n '264': {\n id: '264',\n displayName: 'Washington Huskies',\n color: '33006f',\n alternateColor: 'e8d3a2',\n shortName: 'Washington',\n homeAway: 'home',\n displayOrder: '0',\n logoRef:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/teams/264.jpg?w=184&h=144',\n logoDarkRef: 'https://a.espncdn.com/i/teamlogos/ncaa/500-dark/264.png',\n },\n },\n athlete: {\n '4360423': {\n id: '4360423',\n shortName: 'M. Penix Jr.',\n headshot:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4360423.jpg?w=184&h=144',\n },\n '4430637': {\n id: '4430637',\n shortName: 'J. Polk',\n headshot:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4430637.jpg?w=184&h=144',\n },\n '4430834': {\n id: '4430834',\n shortName: 'J. McMillan',\n headshot:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4430834.jpg?w=184&h=144',\n },\n '4569337': {\n id: '4569337',\n shortName: 'R. Sanborn',\n headshot:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4569337.jpg?w=184&h=144',\n },\n '4570040': {\n id: '4570040',\n shortName: 'B. Murphy II',\n headshot:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4570040.jpg?w=184&h=144',\n },\n '4597500': {\n id: '4597500',\n shortName: 'A. Mitchell',\n headshot:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4597500.jpg?w=184&h=144',\n },\n '4689338': {\n id: '4689338',\n shortName: 'D. Johnson',\n headshot:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4689338.jpg?w=184&h=144',\n },\n '4870609': {\n id: '4870609',\n shortName: 'C. Baxter',\n headshot:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4870609.jpg?w=184&h=144',\n },\n '4889929': {\n id: '4889929',\n shortName: 'Q. Ewers',\n headshot:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4889929.jpg?w=184&h=144',\n },\n },\n },\n sections: [\n {\n title: '1st Quarter',\n items: [\n {\n description: \"Ja'Lynn Polk's 77-yard catch sets up Washington TD\",\n team: '264',\n awayScore: '0',\n homeScore: '7',\n wallClock: '2024-01-02T02:11:05Z',\n displayClock: '11:04',\n shortPeriod: 'Q1',\n scoringPlay: true,\n athlete: '4689338',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4689338.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39225214',\n },\n {\n description: 'Germie Bernard makes leaping grab for Washington',\n team: '264',\n wallClock: '2024-01-02T02:38:54Z',\n displayClock: '1:30',\n shortPeriod: 'Q1',\n scoringPlay: false,\n athlete: '4360423',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4360423.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39225401',\n },\n ],\n },\n {\n title: '2nd Quarter',\n items: [\n {\n description: 'Dillon Johnson scores 2nd TD of game for the Huskies',\n team: '264',\n awayScore: '7',\n homeScore: '14',\n wallClock: '2024-01-02T02:47:33Z',\n displayClock: '13:08',\n shortPeriod: 'Q2',\n scoringPlay: true,\n athlete: '4689338',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4689338.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39225442',\n },\n {\n description: 'Texas takes over after Washington muffs punt',\n team: '251',\n wallClock: '2024-01-02T02:54:50Z',\n displayClock: '11:45',\n shortPeriod: 'Q2',\n scoringPlay: false,\n athlete: '4569337',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4569337.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39225487',\n },\n {\n description: 'Big man TD! Byron Murphy II punches it in for Texas',\n team: '251',\n awayScore: '14',\n homeScore: '14',\n wallClock: '2024-01-02T02:57:22Z',\n displayClock: '10:08',\n shortPeriod: 'Q2',\n scoringPlay: true,\n athlete: '4570040',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4570040.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39225513',\n },\n {\n description:\n 'Rome Odunze makes over-the-shoulder grab for Washington',\n team: '264',\n wallClock: '2024-01-02T03:02:27Z',\n displayClock: '9:31',\n shortPeriod: 'Q2',\n scoringPlay: false,\n athlete: '4360423',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4360423.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39225518',\n },\n {\n description: \"Texas stops Washington's attempt on 4th down\",\n team: '251',\n wallClock: '2024-01-02T03:06:28Z',\n displayClock: '6:59',\n shortPeriod: 'Q2',\n scoringPlay: false,\n athlete: '4689338',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4689338.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39225559',\n },\n {\n description:\n \"Ja'Lynn Polk makes bobbling TD catch and Washington goes ahead\",\n team: '264',\n awayScore: '14',\n homeScore: '21',\n wallClock: '2024-01-02T03:27:56Z',\n displayClock: '1:27',\n shortPeriod: 'Q2',\n scoringPlay: true,\n athlete: '4430637',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4430637.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39225686',\n },\n {\n description: \"Texas ties the score after CJ Baxter's TD run\",\n team: '251',\n awayScore: '21',\n homeScore: '21',\n wallClock: '2024-01-02T03:38:42Z',\n displayClock: '0:17',\n shortPeriod: 'Q2',\n scoringPlay: true,\n athlete: '4870609',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4870609.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39225762',\n },\n ],\n },\n {\n title: '3rd Quarter',\n items: [\n {\n description:\n 'Penix threads the needle to McMillan for Washington score',\n team: '264',\n awayScore: '21',\n homeScore: '28',\n wallClock: '2024-01-02T04:11:00Z',\n displayClock: '10:30',\n shortPeriod: 'Q3',\n scoringPlay: true,\n athlete: '4430834',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4430834.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39226021',\n },\n {\n description: 'Texas commits their first turnover of the game',\n team: '264',\n wallClock: '2024-01-02T04:16:16Z',\n displayClock: '10:14',\n shortPeriod: 'Q3',\n scoringPlay: false,\n athlete: '4870609',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4870609.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39226030',\n },\n ],\n },\n {\n title: '4th Quarter',\n items: [\n {\n description:\n 'Hang time! Adonai Mitchell makes incredible TD grab for Texas',\n team: '251',\n awayScore: '28',\n homeScore: '34',\n wallClock: '2024-01-01T05:08:14Z',\n displayClock: '7:23',\n shortPeriod: 'Q4',\n scoringPlay: true,\n athlete: '4597500',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4597500.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39226360',\n },\n {\n description: 'How did Penix drop this pass in to Odunze?',\n team: '264',\n wallClock: '2024-01-01T05:17:15Z',\n displayClock: '3:48',\n shortPeriod: 'Q4',\n scoringPlay: false,\n athlete: '4360423',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4360423.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39226394',\n },\n {\n description:\n \"Jordan Whittington's big catch gives Texas good field position\",\n team: '251',\n wallClock: '2024-01-01T05:41:48Z',\n displayClock: '0:28',\n shortPeriod: 'Q4',\n scoringPlay: false,\n athlete: '4889929',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4889929.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39226506',\n },\n {\n description:\n \"Washington survives Texas' final drive to win Sugar Bowl\",\n team: '264',\n wallClock: '2024-01-02T04:43:41Z',\n displayClock: '0:00',\n shortPeriod: 'Q4',\n scoringPlay: false,\n athlete: '4889929',\n thumbnail:\n 'https://stitcher.espn.com/ctv/sports/football/leagues/college-football/athletes/4889929.jpg?w=184&h=144',\n thumbnailType: 'headshot',\n clipID: '39226585',\n },\n ],\n },\n ],\n};\n\nexport const BASE_64_KEY_PLAY_THUMBNAIL_FALLBACK =\n 'data:image/jpeg;base64,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';\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".key-plays-view {\\n display: block;\\n overflow-y: auto;\\n scrollbar-width: none;\\n scroll-behavior: smooth;\\n overscroll-behavior: contain;\\n margin-top: 60px;\\n}\\n\\n.key-plays-view::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.key-plays-view > * {\\n margin-bottom: 16px;\\n}\\n\\n.key-plays-view > *:last-child {\\n margin-bottom: 0;\\n}\\n\\n.key-plays-section {\\n display: block;\\n position: relative;\\n}\\n\\n.key-plays-section > * {\\n margin-bottom: 16px;\\n}\\n\\n.key-plays-section > *:last-child {\\n margin-bottom: 0;\\n}\\n\\n.key-plays-section-items {\\n display: block;\\n}\\n\\n.key-plays-section-items > * {\\n margin-bottom: 20px;\\n}\\n\\n.key-plays-section-items > *:last-child {\\n margin-bottom: 0;\\n}\\n\\n.key-plays-section-title {\\n position: sticky;\\n top: 0;\\n z-index: 1;\\n margin: 0;\\n margin-bottom: 16px;\\n}\\n\\n.key-plays-bottom-padding {\\n height: calc(100vh - 240px);\\n min-height: 400px;\\n width: 100%;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/key-plays/view/KeyPlaysView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,gBAAgB;EAChB,qBAAqB;EACrB,uBAAuB;EACvB,4BAA4B;EAC5B,gBAAgB;AAClB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;EAChB,MAAM;EACN,UAAU;EACV,SAAS;EACT,mBAAmB;AACrB;;AAEA;EACE,2BAA2B;EAC3B,iBAAiB;EACjB,WAAW;AACb\",\"sourcesContent\":[\".key-plays-view {\\n display: block;\\n overflow-y: auto;\\n scrollbar-width: none;\\n scroll-behavior: smooth;\\n overscroll-behavior: contain;\\n margin-top: 60px;\\n}\\n\\n.key-plays-view::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.key-plays-view > * {\\n margin-bottom: 16px;\\n}\\n\\n.key-plays-view > *:last-child {\\n margin-bottom: 0;\\n}\\n\\n.key-plays-section {\\n display: block;\\n position: relative;\\n}\\n\\n.key-plays-section > * {\\n margin-bottom: 16px;\\n}\\n\\n.key-plays-section > *:last-child {\\n margin-bottom: 0;\\n}\\n\\n.key-plays-section-items {\\n display: block;\\n}\\n\\n.key-plays-section-items > * {\\n margin-bottom: 20px;\\n}\\n\\n.key-plays-section-items > *:last-child {\\n margin-bottom: 0;\\n}\\n\\n.key-plays-section-title {\\n position: sticky;\\n top: 0;\\n z-index: 1;\\n margin: 0;\\n margin-bottom: 16px;\\n}\\n\\n.key-plays-bottom-padding {\\n height: calc(100vh - 240px);\\n min-height: 400px;\\n width: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".key-play-card {\\n display: block;\\n background-color: var(--sdk-surface2);\\n position: relative;\\n}\\n\\n.key-play-card-content {\\n display: block;\\n width: 100%;\\n position: relative;\\n}\\n\\n.key-play-card-content .cardImage {\\n display: inline-block;\\n width: 33.33%;\\n vertical-align: top;\\n object-fit: cover;\\n border-top-left-radius: 10px;\\n border-bottom-left-radius: 10px;\\n}\\n\\n.key-play-card-content .cardImage[data-has-score='true'] {\\n border-bottom-left-radius: 0;\\n}\\n\\n.key-play-card-content .text-content {\\n position: absolute;\\n top: 50%;\\n left: 33.33%;\\n transform: translateY(-50%);\\n width: 66.67%;\\n padding: 44px 36px 44px 24px;\\n text-align: center;\\n box-sizing: border-box;\\n}\\n\\n.key-play-card-content .multi-line {\\n display: -webkit-box;\\n -webkit-box-orient: vertical;\\n -webkit-line-clamp: 3;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n text-align: left;\\n}\\n\\n.key-play-card progress {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n width: 100%;\\n height: 8px;\\n border-radius: 15px;\\n background-color: var(--sdk-surface6);\\n box-shadow: 0px 1px 3px 0px #10111366 inset;\\n overflow: hidden;\\n border-radius: 0;\\n position: absolute;\\n bottom: 0;\\n}\\n\\n.key-play-card progress::-webkit-progress-bar,\\n.key-play-card progress::-moz-progress-bar {\\n background-color: var(--sdk-surface6);\\n}\\n\\n.key-play-card progress::-webkit-progress-value {\\n background-color: var(--sdk-highlightPrimary);\\n}\\n\\n.key-play-card .score {\\n display: block;\\n text-align: center;\\n padding: 10px;\\n background-color: var(--sdk-surface4);\\n border-bottom-left-radius: 10px;\\n border-bottom-right-radius: 10px;\\n}\\n\\n.key-play-card .score-team {\\n display: inline-block;\\n vertical-align: middle;\\n margin: 0 32px;\\n}\\n\\n.key-play-card .score-team > div {\\n display: inline-block;\\n vertical-align: middle;\\n}\\n\\n.key-play-card .score > *:last-child .score-value {\\n margin-left: 0;\\n margin-right: 16px;\\n}\\n\\n.key-play-card .score-team .score-value {\\n margin-left: 16px;\\n}\\n\\n.key-play-card .error-state {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n display: block;\\n text-align: center;\\n background-color: var(--sdk-surface2);\\n}\\n\\n.key-play-card .error-state-text {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n}\\n\\n.key-play-card .error-state-text > * {\\n margin: 8px;\\n vertical-align: middle;\\n}\\n\\n.key-play-card .error-state .error-state-inner {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.key-play-card .error-state path {\\n fill: var(--sdk-alertWarning);\\n}\\n\\n.key-play-card .non-recent-error-state {\\n position: absolute;\\n top: 18px;\\n right: 18px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/key-plays/view/KeyPlayCardView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,cAAc;EACd,qCAAqC;EACrC,kBAAkB;AACpB;;AAEA;EACE,cAAc;EACd,WAAW;EACX,kBAAkB;AACpB;;AAEA;EACE,qBAAqB;EACrB,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,4BAA4B;EAC5B,+BAA+B;AACjC;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;EACE,kBAAkB;EAClB,QAAQ;EACR,YAAY;EACZ,2BAA2B;EAC3B,aAAa;EACb,4BAA4B;EAC5B,kBAAkB;EAClB,sBAAsB;AACxB;;AAEA;EACE,oBAAoB;EACpB,4BAA4B;EAC5B,qBAAqB;EACrB,gBAAgB;EAChB,uBAAuB;EACvB,gBAAgB;AAClB;;AAEA;EACE,wBAAwB;EACxB,qBAAqB;EACrB,gBAAgB;EAChB,WAAW;EACX,WAAW;EACX,mBAAmB;EACnB,qCAAqC;EACrC,2CAA2C;EAC3C,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;EAClB,SAAS;AACX;;AAEA;;EAEE,qCAAqC;AACvC;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,qCAAqC;EACrC,+BAA+B;EAC/B,gCAAgC;AAClC;;AAEA;EACE,qBAAqB;EACrB,sBAAsB;EACtB,cAAc;AAChB;;AAEA;EACE,qBAAqB;EACrB,sBAAsB;AACxB;;AAEA;EACE,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,qCAAqC;AACvC;;AAEA;EACE,kBAAkB;EAClB,SAAS;EACT,QAAQ;EACR,gCAAgC;AAClC;;AAEA;EACE,WAAW;EACX,sBAAsB;AACxB;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;;AAEA;EACE,6BAA6B;AAC/B;;AAEA;EACE,kBAAkB;EAClB,SAAS;EACT,WAAW;AACb\",\"sourcesContent\":[\".key-play-card {\\n display: block;\\n background-color: var(--sdk-surface2);\\n position: relative;\\n}\\n\\n.key-play-card-content {\\n display: block;\\n width: 100%;\\n position: relative;\\n}\\n\\n.key-play-card-content .cardImage {\\n display: inline-block;\\n width: 33.33%;\\n vertical-align: top;\\n object-fit: cover;\\n border-top-left-radius: 10px;\\n border-bottom-left-radius: 10px;\\n}\\n\\n.key-play-card-content .cardImage[data-has-score='true'] {\\n border-bottom-left-radius: 0;\\n}\\n\\n.key-play-card-content .text-content {\\n position: absolute;\\n top: 50%;\\n left: 33.33%;\\n transform: translateY(-50%);\\n width: 66.67%;\\n padding: 44px 36px 44px 24px;\\n text-align: center;\\n box-sizing: border-box;\\n}\\n\\n.key-play-card-content .multi-line {\\n display: -webkit-box;\\n -webkit-box-orient: vertical;\\n -webkit-line-clamp: 3;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n text-align: left;\\n}\\n\\n.key-play-card progress {\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n appearance: none;\\n width: 100%;\\n height: 8px;\\n border-radius: 15px;\\n background-color: var(--sdk-surface6);\\n box-shadow: 0px 1px 3px 0px #10111366 inset;\\n overflow: hidden;\\n border-radius: 0;\\n position: absolute;\\n bottom: 0;\\n}\\n\\n.key-play-card progress::-webkit-progress-bar,\\n.key-play-card progress::-moz-progress-bar {\\n background-color: var(--sdk-surface6);\\n}\\n\\n.key-play-card progress::-webkit-progress-value {\\n background-color: var(--sdk-highlightPrimary);\\n}\\n\\n.key-play-card .score {\\n display: block;\\n text-align: center;\\n padding: 10px;\\n background-color: var(--sdk-surface4);\\n border-bottom-left-radius: 10px;\\n border-bottom-right-radius: 10px;\\n}\\n\\n.key-play-card .score-team {\\n display: inline-block;\\n vertical-align: middle;\\n margin: 0 32px;\\n}\\n\\n.key-play-card .score-team > div {\\n display: inline-block;\\n vertical-align: middle;\\n}\\n\\n.key-play-card .score > *:last-child .score-value {\\n margin-left: 0;\\n margin-right: 16px;\\n}\\n\\n.key-play-card .score-team .score-value {\\n margin-left: 16px;\\n}\\n\\n.key-play-card .error-state {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n display: block;\\n text-align: center;\\n background-color: var(--sdk-surface2);\\n}\\n\\n.key-play-card .error-state-text {\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n}\\n\\n.key-play-card .error-state-text > * {\\n margin: 8px;\\n vertical-align: middle;\\n}\\n\\n.key-play-card .error-state .error-state-inner {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n}\\n\\n.key-play-card .error-state path {\\n fill: var(--sdk-alertWarning);\\n}\\n\\n.key-play-card .non-recent-error-state {\\n position: absolute;\\n top: 18px;\\n right: 18px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".sdk--key-play-error-state-unsupportedEvent {\\n padding: 32px 24px 0 24px;\\n display: block;\\n}\\n\\n.sdk--key-play-error-state-unsupportedEvent::after {\\n background: linear-gradient(\\n 180deg,\\n rgba(0, 0, 0, 0) 0%,\\n rgba(255, 255, 255, 0.08) 100%\\n );\\n}\\n\\n.sdk--key-play-error-state-unsupportedEvent h3 {\\n margin: 0;\\n}\\n\\n.sdk--key-play-error-state-unsupportedEvent p {\\n margin: 0;\\n color: var(--sdk-text200);\\n}\\n\\n.sdk--key-play-error-state-unsupportedEvent > * {\\n margin-bottom: 16px;\\n}\\n\\n.sdk--key-play-error-state-unsupportedEvent > *:last-child {\\n margin-bottom: 0;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent {\\n overflow-y: hidden;\\n max-height: calc(100vh - 86px - 60px - 60px);\\n scrollbar-width: none;\\n display: block;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n text-align: left;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent p {\\n margin: 0;\\n color: var(--sdk-text200);\\n text-align: left;\\n margin-top: 16px;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent > *:last-child {\\n margin-bottom: 0;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent .main-content {\\n display: block;\\n text-align: center;\\n padding: 32px 6px 32px 6px;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples {\\n display: block;\\n position: relative;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples > * {\\n margin-bottom: 16px;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent\\n .unpopulatedEvent-examples\\n > *:last-child {\\n margin-bottom: 0;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples::after {\\n content: '';\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n bottom: 0;\\n background: linear-gradient(\\n 0deg,\\n var(--sdk-surface1) 0%,\\n rgba(0, 0, 0, 0) 30%\\n );\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent\\n .unpopulatedEvent-examples\\n .example {\\n display: block;\\n padding: 28px 24px;\\n border-radius: 10px;\\n background-color: var(--sdk-surface3);\\n height: 128px;\\n box-sizing: border-box;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent\\n .unpopulatedEvent-examples\\n .example\\n .image {\\n width: 72px;\\n height: 72px;\\n border-radius: 50%;\\n background-color: var(--sdk-surface4);\\n margin-right: 16px;\\n display: inline-block;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent\\n .unpopulatedEvent-examples\\n .example\\n .content {\\n display: inline-block;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent\\n .unpopulatedEvent-examples\\n .example\\n .headline {\\n width: 180px;\\n height: 26px;\\n border-radius: 10px;\\n background-color: var(--sdk-surface4);\\n display: block;\\n margin-bottom: 23px;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent\\n .unpopulatedEvent-examples\\n .example\\n .body {\\n width: 107px;\\n height: 23px;\\n border-radius: 10px;\\n background-color: var(--sdk-surface4);\\n display: block;\\n}\\n\\n.sdk--key-play-error-state-tabLoadFailure {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.sdk--key-play-error-state-tabLoadFailure h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.sdk--key-play-error-state-tabLoadFailure p {\\n margin: 16px 0;\\n height: 86px;\\n}\\n\\n.sdk--key-play-error-state-tabLoadFailure > *:last-child {\\n margin-bottom: 0;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/modules/espn/key-plays/view/KeyPlayErrorStateView.styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,yBAAyB;EACzB,cAAc;AAChB;;AAEA;EACE;;;;GAIC;AACH;;AAEA;EACE,SAAS;AACX;;AAEA;EACE,SAAS;EACT,yBAAyB;AAC3B;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,kBAAkB;EAClB,4CAA4C;EAC5C,qBAAqB;EACrB,cAAc;AAChB;;AAEA;EACE,SAAS;EACT,qCAAqC;EACrC,gBAAgB;AAClB;;AAEA;EACE,SAAS;EACT,yBAAyB;EACzB,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,0BAA0B;AAC5B;;AAEA;EACE,cAAc;EACd,kBAAkB;AACpB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;;;EAGE,gBAAgB;AAClB;;AAEA;EACE,WAAW;EACX,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,SAAS;EACT;;;;GAIC;AACH;;AAEA;;;EAGE,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,qCAAqC;EACrC,aAAa;EACb,sBAAsB;AACxB;;AAEA;;;;EAIE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,qCAAqC;EACrC,kBAAkB;EAClB,qBAAqB;AACvB;;AAEA;;;;EAIE,qBAAqB;AACvB;;AAEA;;;;EAIE,YAAY;EACZ,YAAY;EACZ,mBAAmB;EACnB,qCAAqC;EACrC,cAAc;EACd,mBAAmB;AACrB;;AAEA;;;;EAIE,YAAY;EACZ,YAAY;EACZ,mBAAmB;EACnB,qCAAqC;EACrC,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,aAAa;EACb,qCAAqC;AACvC;;AAEA;EACE,SAAS;EACT,qCAAqC;AACvC;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,gBAAgB;AAClB\",\"sourcesContent\":[\".sdk--key-play-error-state-unsupportedEvent {\\n padding: 32px 24px 0 24px;\\n display: block;\\n}\\n\\n.sdk--key-play-error-state-unsupportedEvent::after {\\n background: linear-gradient(\\n 180deg,\\n rgba(0, 0, 0, 0) 0%,\\n rgba(255, 255, 255, 0.08) 100%\\n );\\n}\\n\\n.sdk--key-play-error-state-unsupportedEvent h3 {\\n margin: 0;\\n}\\n\\n.sdk--key-play-error-state-unsupportedEvent p {\\n margin: 0;\\n color: var(--sdk-text200);\\n}\\n\\n.sdk--key-play-error-state-unsupportedEvent > * {\\n margin-bottom: 16px;\\n}\\n\\n.sdk--key-play-error-state-unsupportedEvent > *:last-child {\\n margin-bottom: 0;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent {\\n overflow-y: hidden;\\n max-height: calc(100vh - 86px - 60px - 60px);\\n scrollbar-width: none;\\n display: block;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n text-align: left;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent p {\\n margin: 0;\\n color: var(--sdk-text200);\\n text-align: left;\\n margin-top: 16px;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent > *:last-child {\\n margin-bottom: 0;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent .main-content {\\n display: block;\\n text-align: center;\\n padding: 32px 6px 32px 6px;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples {\\n display: block;\\n position: relative;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples > * {\\n margin-bottom: 16px;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent\\n .unpopulatedEvent-examples\\n > *:last-child {\\n margin-bottom: 0;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent .unpopulatedEvent-examples::after {\\n content: '';\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n bottom: 0;\\n background: linear-gradient(\\n 0deg,\\n var(--sdk-surface1) 0%,\\n rgba(0, 0, 0, 0) 30%\\n );\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent\\n .unpopulatedEvent-examples\\n .example {\\n display: block;\\n padding: 28px 24px;\\n border-radius: 10px;\\n background-color: var(--sdk-surface3);\\n height: 128px;\\n box-sizing: border-box;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent\\n .unpopulatedEvent-examples\\n .example\\n .image {\\n width: 72px;\\n height: 72px;\\n border-radius: 50%;\\n background-color: var(--sdk-surface4);\\n margin-right: 16px;\\n display: inline-block;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent\\n .unpopulatedEvent-examples\\n .example\\n .content {\\n display: inline-block;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent\\n .unpopulatedEvent-examples\\n .example\\n .headline {\\n width: 180px;\\n height: 26px;\\n border-radius: 10px;\\n background-color: var(--sdk-surface4);\\n display: block;\\n margin-bottom: 23px;\\n}\\n\\n.sdk--key-play-error-state-unpopulatedEvent\\n .unpopulatedEvent-examples\\n .example\\n .body {\\n width: 107px;\\n height: 23px;\\n border-radius: 10px;\\n background-color: var(--sdk-surface4);\\n display: block;\\n}\\n\\n.sdk--key-play-error-state-tabLoadFailure {\\n display: block;\\n padding: 24px;\\n background-color: var(--sdk-surface4);\\n}\\n\\n.sdk--key-play-error-state-tabLoadFailure h3 {\\n margin: 0;\\n font-family: var(--sdk-font-headline);\\n}\\n\\n.sdk--key-play-error-state-tabLoadFailure p {\\n margin: 16px 0;\\n height: 86px;\\n}\\n\\n.sdk--key-play-error-state-tabLoadFailure > *:last-child {\\n margin-bottom: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./KeyPlayCardView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import React from 'react';\n\nexport default class ScoreCard extends React.Component<\n {\n awayTeamScore?: number;\n homeTeamScore?: number;\n homeTeamName: string;\n awayTeamName: string;\n },\n {}\n> {\n render() {\n const {\n awayTeamScore,\n homeTeamScore,\n homeTeamName,\n awayTeamName,\n } = this.props;\n\n if (!awayTeamScore || !homeTeamScore || !homeTeamName || !awayTeamName) {\n return null;\n }\n\n return (\n <div className=\"score\">\n <div className=\"score-team T05_ALT\">\n <span>{homeTeamName}</span>\n <span className=\"T30 score-value FONT_BOLD\">{homeTeamScore}</span>\n </div>\n <div className=\"score-team T05_ALT\">\n <span className=\"T30 score-value FONT_BOLD\">{awayTeamScore}</span>\n <span>{awayTeamName}</span>\n </div>\n </div>\n );\n }\n}\n","import Image from '@/components/atoms/Image';\nimport { BASE_64_KEY_PLAY_THUMBNAIL_FALLBACK } from '../constants';\nimport IKeyPlay, { KeyPlayLoadFailureStatus } from '../interfaces/IKeyPlays';\nimport './KeyPlayCardView.styles.css';\nimport SDK from '@/index';\nimport Icon from '@/components/atoms/SvgIcon';\nimport React, { useCallback } from 'react';\nimport {\n withFocusable,\n WithFocusableProps,\n} from '@/external/spatial-navigation';\nimport ScoreCard from './KeyPlayCardScoreTagView';\nimport KeyPlaysViewModel from '../view-model/KeyPlaysViewModel';\nimport { Direction, Layout } from '@/external/spatial-navigation/utils';\nimport FocusableItem from '@/components/core/ScrollableContainer/FocusableItem';\nimport { useScrollableContainer } from '@/components/core/ScrollableContainer';\n\ntype KeyPlayCardViewProps = IKeyPlay & {\n isPlaying: boolean;\n playbackProgress: number | null;\n isScoring: boolean;\n};\n\ntype KeyPlaysCardViewState = {\n failedClip: KeyPlayLoadFailureStatus | null;\n imageLoaded: boolean;\n};\n\nexport class KeyPlayCardView extends React.Component<\n KeyPlayCardViewProps & WithFocusableProps,\n KeyPlaysCardViewState\n> {\n private failedClipListener: () => void = () => {};\n private vm: KeyPlaysViewModel | null;\n\n constructor(props: KeyPlayCardViewProps) {\n super(props);\n this.vm = SDK.getMaestroEventViewModel()\n .keyPlaysViewModel as KeyPlaysViewModel | null;\n this.state = {\n failedClip: this.viewModel.failedClips.value[props.clipID] || null,\n imageLoaded: false,\n };\n }\n\n get viewModel() {\n if (!this.vm) {\n throw new Error('KeyPlaysViewModel is not initialized');\n }\n\n return this.vm;\n }\n\n componentDidMount() {\n this.failedClipListener = this.viewModel.failedClips.subscribe(\n (failedClips) => {\n this.setState({ failedClip: failedClips[this.props.clipID] });\n }\n );\n }\n\n componentWillUnmount() {\n if (this.failedClipListener) {\n this.failedClipListener();\n }\n }\n\n onLoad = () => {\n this.setState({ imageLoaded: true });\n };\n\n renderImage = () => {\n const {\n playerImageUrl,\n teamImageUrl,\n thumbnailImageUrl,\n isScoring,\n } = this.props;\n if (playerImageUrl) {\n return (\n <Image\n src={playerImageUrl}\n crossOrigin=\"anonymous\"\n alt=\"Key Play Player Image\"\n className=\"cardImage\"\n onLoad={this.onLoad}\n style={{\n display: this.state.imageLoaded ? 'block' : 'none',\n }}\n data-has-score={isScoring}\n />\n );\n }\n\n if (teamImageUrl) {\n return (\n <Image\n src={teamImageUrl}\n crossOrigin=\"anonymous\"\n alt=\"Key Play Team Image\"\n className=\"cardImage\"\n onLoad={this.onLoad}\n style={{\n display: this.state.imageLoaded ? 'block' : 'none',\n }}\n data-has-score={isScoring}\n />\n );\n }\n\n if (thumbnailImageUrl) {\n return (\n <Image\n src={thumbnailImageUrl}\n crossOrigin=\"anonymous\"\n alt=\"Key Play Thumbnail Image\"\n className=\"cardImage\"\n onLoad={this.onLoad}\n style={{\n display: this.state.imageLoaded ? 'block' : 'none',\n }}\n />\n );\n }\n\n return null;\n };\n\n render() {\n const {\n clipID,\n description,\n isPlaying,\n playbackProgress,\n isScoring,\n focused,\n awayTeamScore,\n homeTeamScore,\n homeTeamName,\n awayTeamName,\n } = this.props;\n const { failedClip } = this.state;\n\n return (\n <div\n className=\"key-play-card focus-ring\"\n id={clipID}\n data-focused={focused}\n >\n <div className=\"key-play-card-content\">\n {!this.state.imageLoaded && (\n <Image\n src={BASE_64_KEY_PLAY_THUMBNAIL_FALLBACK}\n crossOrigin=\"anonymous\"\n alt=\"Key Play Thumbnail Image\"\n className=\"cardImage\"\n />\n )}\n {this.renderImage()}\n <div className=\"text-content T05_ALT\">\n <div className=\"multi-line\">{description}</div>\n </div>\n </div>\n {isPlaying && playbackProgress !== null && (\n <progress value={playbackProgress} max=\"1\" />\n )}\n {isScoring && (\n <ScoreCard\n awayTeamScore={awayTeamScore}\n homeTeamScore={homeTeamScore}\n homeTeamName={homeTeamName}\n awayTeamName={awayTeamName}\n />\n )}\n\n {failedClip === 'recentFailure' && (\n <div className=\"error-state\">\n <div className=\"error-state-inner\">\n <div className=\"error-state-text\">\n <Icon iconName=\"warning\" width={21.6} height={18.7} />\n <span className=\"T05_ALT\">Could not play this clip. </span>\n </div>\n </div>\n </div>\n )}\n {failedClip === 'nonRecentFailure' && (\n <div className=\"non-recent-error-state\">\n <Icon iconName=\"warning\" width={21.6} height={18.7} />\n </div>\n )}\n </div>\n );\n }\n}\n\nconst FocusableKeyPlayCard = withFocusable<KeyPlayCardViewProps>()(\n KeyPlayCardView as React.ComponentType<KeyPlayCardViewProps>\n);\n\nconst KeyPlayCard: React.FC<\n Omit<KeyPlayCardViewProps, 'setRef'> & WithFocusableProps\n> = (props) => {\n const { scrollToFocusedElement } = useScrollableContainer();\n\n const handleLeftPressed = useCallback((d: Direction) => {\n if (d === 'left') {\n SDK.getMaestroEventViewModel().deliverFocus();\n }\n }, []);\n\n const onBecameFocused = useCallback(\n (layout: Layout) => {\n scrollToFocusedElement(layout);\n },\n [scrollToFocusedElement]\n );\n\n return (\n <FocusableItem>\n <FocusableKeyPlayCard\n {...props}\n onArrowPress={handleLeftPressed}\n onBecameFocused={onBecameFocused}\n />\n </FocusableItem>\n );\n};\n\nexport default KeyPlayCard;\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./KeyPlaysView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-1!./KeyPlayErrorStateView.styles.css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { KeyPlaysErrorState } from '../interfaces/IKeyPlays';\nimport './KeyPlayErrorStateView.styles.css';\nimport React from 'react';\nimport { Direction } from '@/external/spatial-navigation/utils';\nimport SDK from '@/index';\nimport TabLoadErrorView from '../../components/TabLoadError';\nimport { useMaxHeightToBottom } from '@/hooks/useMaxHeightToBottom';\n\ntype Props = {\n errorState: KeyPlaysErrorState;\n onRetry: () => void;\n};\n\nconst UnpopulatedEvent = () => {\n const maxHeightRef = useMaxHeightToBottom();\n\n return (\n <div\n ref={maxHeightRef}\n className=\"sdk--key-play-error-state-unpopulatedEvent\"\n >\n <div className=\"main-content\">\n <h3 className=\"T70\">Good things come to those who wait!</h3>\n <p className=\"T20\">\n When a key play occurs we will serve them up for you here.\n </p>\n </div>\n <div className=\"unpopulatedEvent-examples\">\n {Array.from({ length: 4 }).map((_, i) => (\n <div key={i} className=\"example\">\n <div className=\"image\" />\n <div className=\"content\">\n <div className=\"headline\" />\n <div className=\"body\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nclass UnsupportedEvent extends React.Component {\n render() {\n return (\n <div className=\"sdk--key-play-error-state-unsupportedEvent\">\n <h3 className=\"T70\">No Key Plays Available</h3>\n <svg\n viewBox=\"0 0 520 359\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g opacity=\"0.16\">\n <path\n d=\"M146.334 219.427V244.686L168.723 198.187V38.0215L165.279 40.3178V188.427L146.334 219.427Z\"\n fill=\"#6D6D6D\"\n />\n <rect\n x=\"94.6687\"\n y=\"219.427\"\n width=\"51.6662\"\n height=\"25.259\"\n fill=\"#777777\"\n />\n <rect\n x=\"145.187\"\n y=\"39.1694\"\n width=\"20.6665\"\n height=\"149.258\"\n fill=\"#666666\"\n />\n <path\n d=\"M146.335 219.427H94.6687L143.465 187.279H167.001L146.335 219.427Z\"\n fill=\"#666666\"\n />\n <path\n d=\"M375.389 219.427V244.686L353 198.187V38.0215L356.445 40.3178V188.427L375.389 219.427Z\"\n fill=\"#6D6D6D\"\n />\n <rect\n width=\"51.6662\"\n height=\"25.259\"\n transform=\"matrix(-1 0 0 1 427.055 219.427)\"\n fill=\"#777777\"\n />\n <rect\n width=\"20.6665\"\n height=\"149.258\"\n transform=\"matrix(-1 0 0 1 376.537 39.1694)\"\n fill=\"#666666\"\n />\n <path\n d=\"M375.389 219.427H427.055L378.259 187.279H354.722L375.389 219.427Z\"\n fill=\"#666666\"\n />\n <path\n d=\"M23.4844 141.354H496.517L410.981 121.835H93.5208L23.4844 141.354Z\"\n fill=\"#B1B1B1\"\n />\n <rect\n x=\"23.4844\"\n y=\"141.354\"\n width=\"473.033\"\n height=\"19.5183\"\n fill=\"#777777\"\n />\n <rect\n x=\"72.8545\"\n y=\"51.7993\"\n width=\"374.293\"\n height=\"45.9255\"\n fill=\"#CDCDCD\"\n />\n </g>\n </svg>\n </div>\n );\n }\n}\n\nclass KeyPlayErrorStateView extends React.Component<Props, {}> {\n onArrowPress = (d: Direction) => {\n if (d === 'left') {\n SDK.getMaestroEventViewModel().deliverFocus();\n }\n };\n\n render() {\n const { errorState, onRetry } = this.props;\n\n if (errorState === 'unsupportedEvent') {\n return <UnsupportedEvent />;\n }\n\n if (errorState === 'unpopulatedEvent') {\n return <UnpopulatedEvent />;\n }\n\n if (errorState === 'tabLoadFailure') {\n return (\n <TabLoadErrorView\n onEnterPress={onRetry}\n onArrowPress={this.onArrowPress}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default KeyPlayErrorStateView;\n","import React, { Component } from 'react';\nimport KeyPlayCardView from './KeyPlayCardView';\nimport './KeyPlaysView.styles.css';\nimport KeyPlayErrorStateView from './KeyPlayErrorStateView';\nimport SDK from '@/index';\nimport { KeyPlaysErrorState } from '../interfaces/IKeyPlays';\nimport KeyPlaysViewModel, {\n KeyPlayItem,\n} from '../view-model/KeyPlaysViewModel';\nimport ScrollableContainer from '@/components/core/ScrollableContainer';\nimport { setupMaxHeightToBottom } from '@/hooks/useMaxHeightToBottom';\n\nconst STICKY_HEADER_HEIGHT = 32;\n\ntype Unsubscribe = () => void;\n\ninterface IKeyPlaysState {\n playbackProgress: number | null;\n playbackIndex: number | null;\n items: KeyPlayItem[];\n scrollableContainer: HTMLDivElement | null;\n}\n\nexport class KeyPlays extends Component<{}, IKeyPlaysState> {\n private container: HTMLDivElement | null = null;\n private playbackProgressUnsub: Unsubscribe | null = null;\n private playbackIndexUnsub: Unsubscribe | null = null;\n private itemsUnsub: Unsubscribe | null = null;\n private maxHeightCleanup: Unsubscribe | null = null;\n private vm: KeyPlaysViewModel | null;\n\n constructor(props: {}) {\n super(props);\n this.vm = SDK.getMaestroEventViewModel()\n .keyPlaysViewModel as KeyPlaysViewModel | null;\n this.state = {\n scrollableContainer: null,\n playbackProgress:\n this.viewModel.currentClipPlaybackProgress.value ?? null,\n playbackIndex: this.viewModel.currentlyPlayingClipIndex.value ?? null,\n items: this.viewModel.filteredItems.value ?? [],\n };\n }\n\n get viewModel() {\n if (!this.vm) {\n throw new Error('KeyPlaysViewModel is not initialized');\n }\n\n return this.vm;\n }\n\n componentDidMount() {\n this.playbackProgressUnsub = this.viewModel.currentClipPlaybackProgress.subscribe(\n (value) => {\n this.setState({ playbackProgress: value ?? null });\n }\n );\n this.playbackIndexUnsub = this.viewModel.currentlyPlayingClipIndex.subscribe(\n (value) => {\n this.setState({ playbackIndex: value ?? null });\n }\n );\n this.itemsUnsub = this.viewModel.filteredItems.subscribe((items) => {\n this.setState({\n items,\n });\n });\n\n this.setState({\n scrollableContainer: this.container,\n });\n\n this.maxHeightCleanup = setupMaxHeightToBottom(() => this.container);\n }\n\n componentWillUnmount() {\n this.playbackProgressUnsub && this.playbackProgressUnsub();\n this.playbackIndexUnsub && this.playbackIndexUnsub();\n this.itemsUnsub && this.itemsUnsub();\n this.maxHeightCleanup && this.maxHeightCleanup();\n }\n\n private handlePlayClip = (index: number) => async () => {\n await this.viewModel.playKeyPlay(index);\n };\n\n setContainerRef = (e: HTMLDivElement | null) => {\n if (e && !this.container) {\n this.container = e;\n }\n\n if (this.container !== e) {\n this.container = e;\n if (this.maxHeightCleanup) {\n this.maxHeightCleanup();\n }\n if (this.container) {\n this.maxHeightCleanup = setupMaxHeightToBottom(() => this.container);\n }\n }\n };\n\n render() {\n const {\n playbackProgress,\n playbackIndex,\n items,\n scrollableContainer,\n } = this.state;\n\n return (\n <ScrollableContainer\n scrollableContainerRef={scrollableContainer}\n containerTopOffset={STICKY_HEADER_HEIGHT}\n >\n <div ref={this.setContainerRef} className=\"key-plays-view\">\n {items.map((section, sectionIndex) => (\n <div key={`section-${sectionIndex}`} className=\"key-plays-section\">\n {section.title && (\n <h3 className=\"key-plays-section-title T10\">{section.title}</h3>\n )}\n <div className=\"key-plays-section-items\">\n {section.items.map((item) => {\n const absoluteIndex =\n this.vm?.allItems.findIndex(\n (vmItem) => vmItem.id === item.id\n ) ?? -1;\n return (\n <KeyPlayCardView\n key={item.id}\n id={item.id}\n clipID={item.clipID}\n description={item.description}\n awayTeamName={item.awayTeamName}\n homeTeamName={item.homeTeamName}\n awayTeamScore={item.awayTeamScore}\n homeTeamScore={item.homeTeamScore}\n playerImageUrl={item.playerImageUrl}\n teamImageUrl={item.teamImageUrl}\n thumbnailImageUrl={item.thumbnailImageUrl}\n isPlaying={this.viewModel.isCurrentlyPlaying(\n absoluteIndex\n )}\n isScoring={Boolean(\n item.awayTeamScore && item.homeTeamScore\n )}\n playbackProgress={\n absoluteIndex === playbackIndex\n ? playbackProgress\n : null\n }\n onEnterPress={this.handlePlayClip(absoluteIndex)}\n />\n );\n })}\n </div>\n </div>\n ))}\n <div className=\"key-plays-bottom-padding\" />\n </div>\n </ScrollableContainer>\n );\n }\n}\n\ninterface KeyPlaysWithErrorStateState {\n errorState: KeyPlaysErrorState;\n}\n\nexport default class KeyPlaysWithErrorState extends Component<\n {},\n KeyPlaysWithErrorStateState\n> {\n private errorStateUnsub: Unsubscribe | null = null;\n private vm: KeyPlaysViewModel | null;\n\n constructor(props: {}) {\n super(props);\n this.vm = SDK.getMaestroEventViewModel()\n .keyPlaysViewModel as KeyPlaysViewModel | null;\n this.state = {\n errorState: this.viewModel.errorState.value as KeyPlaysErrorState,\n };\n }\n\n get viewModel() {\n if (!this.vm) {\n throw new Error('KeyPlaysViewModel is not initialized');\n }\n\n return this.vm;\n }\n\n componentDidMount() {\n this.errorStateUnsub = this.viewModel.errorState.subscribe((value) => {\n this.setState({ errorState: value as KeyPlaysErrorState });\n });\n this.viewModel.init();\n }\n\n componentWillUnmount() {\n this.errorStateUnsub && this.errorStateUnsub();\n }\n\n private handleRetry = async () => {\n await this.viewModel.userRequestedNewKeyPlaysData();\n };\n\n render() {\n const { errorState } = this.state;\n if (errorState) {\n return (\n <KeyPlayErrorStateView\n errorState={errorState}\n onRetry={this.handleRetry}\n />\n );\n }\n\n return <KeyPlays />;\n }\n}\n"],"sourceRoot":""}
|