@maestro_io/maestro-web-sdk 5.1.2 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/dist/1.maestro-web-sdk.esm.js +1 -1
  2. package/dist/1.maestro-web-sdk.esm.js.map +1 -1
  3. package/dist/10.maestro-web-sdk.esm.js +1 -1
  4. package/dist/10.maestro-web-sdk.esm.js.map +1 -1
  5. package/dist/11.maestro-web-sdk.esm.js +1 -1
  6. package/dist/11.maestro-web-sdk.esm.js.map +1 -1
  7. package/dist/12.maestro-web-sdk.esm.js +1 -1
  8. package/dist/12.maestro-web-sdk.esm.js.map +1 -1
  9. package/dist/13.maestro-web-sdk.esm.js +1 -1
  10. package/dist/13.maestro-web-sdk.esm.js.map +1 -1
  11. package/dist/14.maestro-web-sdk.esm.js +1 -1
  12. package/dist/14.maestro-web-sdk.esm.js.map +1 -1
  13. package/dist/15.maestro-web-sdk.esm.js +1 -1
  14. package/dist/15.maestro-web-sdk.esm.js.map +1 -1
  15. package/dist/16.maestro-web-sdk.esm.js +1 -1
  16. package/dist/16.maestro-web-sdk.esm.js.map +1 -1
  17. package/dist/17.maestro-web-sdk.esm.js +1 -1
  18. package/dist/17.maestro-web-sdk.esm.js.map +1 -1
  19. package/dist/18.maestro-web-sdk.esm.js +1 -1
  20. package/dist/18.maestro-web-sdk.esm.js.map +1 -1
  21. package/dist/19.maestro-web-sdk.esm.js +1 -1
  22. package/dist/19.maestro-web-sdk.esm.js.map +1 -1
  23. package/dist/2.maestro-web-sdk.esm.js +1 -1
  24. package/dist/20.maestro-web-sdk.esm.js +1 -1
  25. package/dist/20.maestro-web-sdk.esm.js.map +1 -1
  26. package/dist/21.maestro-web-sdk.esm.js +1 -1
  27. package/dist/21.maestro-web-sdk.esm.js.map +1 -1
  28. package/dist/22.maestro-web-sdk.esm.js +1 -1
  29. package/dist/22.maestro-web-sdk.esm.js.map +1 -1
  30. package/dist/23.maestro-web-sdk.esm.js +1 -1
  31. package/dist/23.maestro-web-sdk.esm.js.map +1 -1
  32. package/dist/24.maestro-web-sdk.esm.js +1 -1
  33. package/dist/24.maestro-web-sdk.esm.js.map +1 -1
  34. package/dist/25.maestro-web-sdk.esm.js +1 -1
  35. package/dist/25.maestro-web-sdk.esm.js.map +1 -1
  36. package/dist/26.maestro-web-sdk.esm.js +1 -1
  37. package/dist/26.maestro-web-sdk.esm.js.map +1 -1
  38. package/dist/27.maestro-web-sdk.esm.js +1 -1
  39. package/dist/27.maestro-web-sdk.esm.js.map +1 -1
  40. package/dist/28.maestro-web-sdk.esm.js +1 -1
  41. package/dist/28.maestro-web-sdk.esm.js.map +1 -1
  42. package/dist/29.maestro-web-sdk.esm.js +1 -1
  43. package/dist/29.maestro-web-sdk.esm.js.map +1 -1
  44. package/dist/3.maestro-web-sdk.esm.js +1 -1
  45. package/dist/3.maestro-web-sdk.esm.js.map +1 -1
  46. package/dist/30.maestro-web-sdk.esm.js +1 -1
  47. package/dist/30.maestro-web-sdk.esm.js.map +1 -1
  48. package/dist/31.maestro-web-sdk.esm.js +1 -1
  49. package/dist/31.maestro-web-sdk.esm.js.map +1 -1
  50. package/dist/32.maestro-web-sdk.esm.js +1 -1
  51. package/dist/32.maestro-web-sdk.esm.js.map +1 -1
  52. package/dist/33.maestro-web-sdk.esm.js +1 -1
  53. package/dist/33.maestro-web-sdk.esm.js.map +1 -1
  54. package/dist/34.maestro-web-sdk.esm.js +1 -1
  55. package/dist/34.maestro-web-sdk.esm.js.map +1 -1
  56. package/dist/35.maestro-web-sdk.esm.js +1 -1
  57. package/dist/35.maestro-web-sdk.esm.js.map +1 -1
  58. package/dist/36.maestro-web-sdk.esm.js +1 -1
  59. package/dist/36.maestro-web-sdk.esm.js.map +1 -1
  60. package/dist/37.maestro-web-sdk.esm.js +1 -1
  61. package/dist/37.maestro-web-sdk.esm.js.map +1 -1
  62. package/dist/38.maestro-web-sdk.esm.js +1 -1
  63. package/dist/38.maestro-web-sdk.esm.js.map +1 -1
  64. package/dist/39.maestro-web-sdk.esm.js +2 -0
  65. package/dist/39.maestro-web-sdk.esm.js.map +1 -0
  66. package/dist/4.maestro-web-sdk.esm.js +1 -1
  67. package/dist/4.maestro-web-sdk.esm.js.map +1 -1
  68. package/dist/40.maestro-web-sdk.esm.js +2 -0
  69. package/dist/40.maestro-web-sdk.esm.js.map +1 -0
  70. package/dist/5.maestro-web-sdk.esm.js +1 -1
  71. package/dist/5.maestro-web-sdk.esm.js.map +1 -1
  72. package/dist/6.maestro-web-sdk.esm.js +1 -1
  73. package/dist/6.maestro-web-sdk.esm.js.map +1 -1
  74. package/dist/7.maestro-web-sdk.esm.js +1 -1
  75. package/dist/7.maestro-web-sdk.esm.js.map +1 -1
  76. package/dist/8.maestro-web-sdk.esm.js +1 -1
  77. package/dist/8.maestro-web-sdk.esm.js.map +1 -1
  78. package/dist/9.maestro-web-sdk.esm.js +1 -1
  79. package/dist/9.maestro-web-sdk.esm.js.map +1 -1
  80. package/dist/index.d.ts +4 -1
  81. package/dist/maestro-web-sdk.esm.js +3 -3
  82. package/dist/maestro-web-sdk.esm.js.map +1 -1
  83. package/dist/maestro-web-sdk.umd.js +3 -3
  84. package/dist/maestro-web-sdk.umd.js.map +1 -1
  85. package/dist/package.json +1 -1
  86. package/dist/src/components/atoms/SvgIcon/AddIcon.d.ts +3 -0
  87. package/dist/src/components/atoms/SvgIcon/AddIcon.js +6 -0
  88. package/dist/src/components/atoms/SvgIcon/Icon.js +2 -0
  89. package/dist/src/components/core/PanelManager/PanelManager.js +5 -3
  90. package/dist/src/components/molecules/NetworkDialog/NetworkDialog.d.ts +11 -0
  91. package/dist/src/components/molecules/NetworkDialog/NetworkDialog.js +34 -0
  92. package/dist/src/components/molecules/NetworkDialog/index.d.ts +2 -0
  93. package/dist/src/components/molecules/NetworkDialog/index.js +2 -0
  94. package/dist/src/components/molecules/NetworkError/NetworkError.d.ts +104 -0
  95. package/dist/src/components/molecules/NetworkError/NetworkError.js +26 -0
  96. package/dist/src/components/molecules/NetworkError/index.d.ts +2 -0
  97. package/dist/src/components/molecules/NetworkError/index.js +2 -0
  98. package/dist/src/components/molecules/PanelNavButton/PanelNavButton.d.ts +1 -0
  99. package/dist/src/components/molecules/PanelNavButton/PanelNavButton.js +16 -7
  100. package/dist/src/components/organisms/PanelNavigation/PanelNavigation.d.ts +1 -0
  101. package/dist/src/components/organisms/PanelNavigation/PanelNavigation.js +11 -7
  102. package/dist/src/development/MaestroEventDelegate.js +1 -0
  103. package/dist/src/helpers/site.d.ts +1 -0
  104. package/dist/src/helpers/site.js +6 -0
  105. package/dist/src/helpers/siteConfig.d.ts +1 -0
  106. package/dist/src/helpers/siteConfig.js +5 -0
  107. package/dist/src/models/IPanel.d.ts +1 -1
  108. package/dist/src/models/IPanel.js +1 -1
  109. package/dist/src/modules/espn/bets/view/BetsView.js +1 -1
  110. package/dist/src/modules/espn/components/TabLoadError/TabLoadError.d.ts +96 -0
  111. package/dist/src/modules/espn/components/TabLoadError/TabLoadError.js +14 -0
  112. package/dist/src/modules/espn/components/TabLoadError/index.d.ts +2 -0
  113. package/dist/src/modules/espn/components/TabLoadError/index.js +2 -0
  114. package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/TournamentOverflowQR.d.ts +5 -5
  115. package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/TournamentOverflowQR.js +7 -73
  116. package/dist/src/modules/espn/fantasy/services/FantasyService.js +1 -1
  117. package/dist/src/modules/espn/fantasy/view/FantasyItemView.js +1 -1
  118. package/dist/src/modules/espn/fantasy/view/FantasyView.js +1 -1
  119. package/dist/src/modules/espn/key-plays/view/KeyPlayErrorStateView.js +1 -1
  120. package/dist/src/modules/espn/shop/view/ShopView.js +1 -1
  121. package/dist/src/modules/espn/stats/view/StatsView.js +1 -1
  122. package/dist/src/modules/fox/components/TabLoadError/TabLoadError.d.ts +96 -0
  123. package/dist/src/modules/fox/components/TabLoadError/TabLoadError.js +19 -0
  124. package/dist/src/modules/fox/components/TabLoadError/index.d.ts +2 -0
  125. package/dist/src/modules/fox/components/TabLoadError/index.js +2 -0
  126. package/dist/src/modules/fox/multi-view/interfaces/IMultiViewViewModel.d.ts +3 -0
  127. package/dist/src/modules/fox/multi-view/interfaces/IMultiViewViewModel.js +1 -0
  128. package/dist/src/modules/fox/multi-view/services/MultiViewService.d.ts +99 -0
  129. package/dist/src/modules/fox/multi-view/services/MultiViewService.js +94 -0
  130. package/dist/src/modules/fox/multi-view/types.d.ts +29 -43
  131. package/dist/src/modules/fox/multi-view/types.js +79 -82
  132. package/dist/src/modules/fox/multi-view/view/CuratedMultiview/CuratedMultiviews.d.ts +8 -0
  133. package/dist/src/modules/fox/multi-view/view/CuratedMultiview/CuratedMultiviews.js +91 -0
  134. package/dist/src/modules/fox/multi-view/view/CuratedMultiview/index.d.ts +2 -0
  135. package/dist/src/modules/fox/multi-view/view/CuratedMultiview/index.js +2 -0
  136. package/dist/src/modules/fox/multi-view/view/FoxMultiView.d.ts +1 -0
  137. package/dist/src/modules/fox/multi-view/view/FoxMultiView.js +62 -2
  138. package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/CustomMultiviewStreamsCard.d.ts +122 -0
  139. package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/CustomMultiviewStreamsCard.js +51 -0
  140. package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/index.d.ts +2 -0
  141. package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/index.js +2 -0
  142. package/dist/src/modules/fox/multi-view/view/components/LayoutSelector/LayoutSelector.d.ts +1 -1
  143. package/dist/src/modules/fox/multi-view/view/components/LayoutSelector/LayoutSelector.js +11 -14
  144. package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/CuratedMultiviewCard.d.ts +101 -0
  145. package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/CuratedMultiviewCard.js +21 -0
  146. package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/index.d.ts +2 -0
  147. package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/index.js +2 -0
  148. package/dist/src/modules/fox/multi-view/view-model/MultiViewViewModel.d.ts +63 -0
  149. package/dist/src/modules/fox/multi-view/view-model/MultiViewViewModel.js +328 -0
  150. package/dist/src/modules/fox/multi-view/view-model/index.d.ts +1 -0
  151. package/dist/src/modules/fox/multi-view/view-model/index.js +1 -0
  152. package/dist/src/services/NetworkManager/NetworkManager.js +1 -1
  153. package/dist/src/services/NetworkManager/errors.d.ts +3 -1
  154. package/dist/src/services/NetworkManager/errors.js +15 -1
  155. package/dist/src/services/StaticService/StaticService.js +1 -0
  156. package/dist/src/view-models/MaestroEventViewModel.d.ts +2 -0
  157. package/dist/src/view-models/MaestroEventViewModel.js +17 -1
  158. package/package.json +1 -1
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maestro_io/maestro-web-sdk",
3
3
  "private": false,
4
- "version": "5.0.0",
4
+ "version": "5.2.0",
5
5
  "type": "commonjs",
6
6
  "license": "MIT",
7
7
  "main": "dist/maestro-web-sdk.umd.js",
@@ -0,0 +1,3 @@
1
+ import { IconProps } from './Icon';
2
+ declare const AddIcon: (props: IconProps) => JSX.Element;
3
+ export default AddIcon;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ const AddIcon = (props) => {
3
+ return (React.createElement("svg", { width: props.width, height: props.height, viewBox: "0 0 21 21", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
4
+ React.createElement("path", { d: "M10.5 1V20M1 10.5H20", stroke: "#FFFFFF", strokeWidth: "2", strokeLinecap: "round" })));
5
+ };
6
+ export default AddIcon;
@@ -22,6 +22,7 @@ const BuilderIcon = lazy(() => import('./BuilderIcon'));
22
22
  const FoxKeyPlaysIcon = lazy(() => import('./FoxKeyPlaysIcon'));
23
23
  const FoxStatsIcon = lazy(() => import('./FoxStatsIcon'));
24
24
  const FoxMultiViewIcon = lazy(() => import('./FoxMultiViewIcon'));
25
+ const AddIcon = lazy(() => import('./AddIcon'));
25
26
  // Ensures all MaestroPanelType values have icons
26
27
  const panelIcons = {
27
28
  [MaestroPanelType.ESPN_KEY_PLAYS]: KeyPlaysIcon,
@@ -47,6 +48,7 @@ const otherIcons = {
47
48
  mobilePhone: MobilePhoneIcon,
48
49
  chat: ChatIcon,
49
50
  shopifyBlockPanel: ShopifyIcon,
51
+ add: AddIcon,
50
52
  };
51
53
  const iconImports = {
52
54
  ...panelIcons,
@@ -2,6 +2,7 @@ import React, { Suspense, lazy } from 'react';
2
2
  import './PanelManager.styles.css';
3
3
  import PanelNavigation from '@/components/organisms/PanelNavigation';
4
4
  import SDK from '@/index';
5
+ import { isFoxSiteID } from '@/helpers/site';
5
6
  // Lazy load panel components
6
7
  const KeyPlaysView = lazy(() => import('@/modules/espn/key-plays/view/KeyPlaysView'));
7
8
  const BetsView = lazy(() => import('@/modules/espn/bets/view/BetsView'));
@@ -23,7 +24,7 @@ const PANELS_MAP = {
23
24
  espnShop: ShopView,
24
25
  helloWorld: HelloWorldView,
25
26
  foxKeyPlays: FoxKeyPlays,
26
- foxMultiview: FoxMultiView,
27
+ foxMultiView: FoxMultiView,
27
28
  foxStats: FoxStatsView,
28
29
  builderBlockPanel: BuilderView,
29
30
  };
@@ -84,6 +85,7 @@ class PanelManager extends React.Component {
84
85
  }
85
86
  render() {
86
87
  const { activePanel, visiblePanels } = this.state;
88
+ const isFoxSite = isFoxSiteID(SDK.getSiteID());
87
89
  // Create panel items only for visible panels
88
90
  const PANEL_ITEMS = visiblePanels.map((panel) => ({
89
91
  iconName: panel.type,
@@ -92,8 +94,8 @@ class PanelManager extends React.Component {
92
94
  active: activePanel === panel.type,
93
95
  }));
94
96
  const ActivePanelComponent = activePanel ? PANELS_MAP[activePanel] : null;
95
- return (React.createElement("div", { className: "sdk--panel-manager" },
96
- React.createElement(PanelNavigation, { items: PANEL_ITEMS }),
97
+ return (React.createElement("div", { className: 'sdk--panel-manager' + (isFoxSite ? ' sdk--panel-manager-fox' : '') },
98
+ React.createElement(PanelNavigation, { items: PANEL_ITEMS, isFoxSite: isFoxSite }),
97
99
  ActivePanelComponent && (React.createElement("div", { className: "sdk--panel-wrapper" },
98
100
  React.createElement(Suspense, { fallback: React.createElement(PanelLoading, null) },
99
101
  React.createElement(ActivePanelComponent, null))))));
@@ -0,0 +1,11 @@
1
+ import './NetworkDialog.styles.css';
2
+ type NetworkDialogViewDetails = {
3
+ description?: string;
4
+ icon?: 'warning' | 'info' | 'loading';
5
+ };
6
+ interface NetworkDialogViewProps {
7
+ details?: NetworkDialogViewDetails;
8
+ isVisible?: boolean;
9
+ }
10
+ declare const NetworkDialogView: (props: NetworkDialogViewProps) => JSX.Element | null;
11
+ export default NetworkDialogView;
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import './NetworkDialog.styles.css';
3
+ const WarningIcon = () => (React.createElement("svg", { className: "network-dialog-icon", width: "21", height: "19", viewBox: "0 0 21 19", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
4
+ React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.333 0C9.16683 0 8.31608 0.70209 7.58823 1.61668C6.87631 2.51125 6.1187 3.81989 5.18179 5.43827L2.52557 10.0263C1.58508 11.6507 0.824792 12.9639 0.402195 14.0299C-0.029695 15.1194 -0.215504 16.2097 0.368381 17.2224C0.952267 18.2351 1.98898 18.6206 3.14823 18.7927C4.28254 18.9611 5.79993 18.9611 7.67693 18.9611H12.9891C14.8661 18.9611 16.3835 18.9611 17.5178 18.7927C18.6771 18.6206 19.7138 18.2351 20.2977 17.2224C20.8815 16.2097 20.6957 15.1194 20.2638 14.0299C19.8413 12.9639 19.081 11.6507 18.1405 10.0263L15.4843 5.43827C14.5473 3.81989 13.7897 2.51125 13.0778 1.61668C12.35 0.70209 11.4992 0 10.333 0ZM11.2809 6.67659C11.2809 6.15337 10.8567 5.72922 10.3335 5.72922C9.81027 5.72922 9.38612 6.15337 9.38612 6.67659V10.7992C9.38612 11.3224 9.81027 11.7465 10.3335 11.7465C10.8567 11.7465 11.2809 11.3224 11.2809 10.7992V6.67659ZM11.3641 13.8909C11.3641 14.4601 10.9027 14.9215 10.3334 14.9215C9.76423 14.9215 9.3028 14.4601 9.3028 13.8909C9.3028 13.3216 9.76423 12.8602 10.3334 12.8602C10.9027 12.8602 11.3641 13.3216 11.3641 13.8909Z", fill: "white" })));
5
+ const InfoIcon = () => (React.createElement("svg", { className: "network-dialog-icon", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
6
+ React.createElement("circle", { cx: "12", cy: "12", r: "11", stroke: "currentColor", strokeWidth: "2" }),
7
+ React.createElement("path", { d: "M12 8V16", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }),
8
+ React.createElement("circle", { cx: "12", cy: "6", r: "1", fill: "currentColor" })));
9
+ const LoadingIcon = () => (React.createElement("svg", { className: "network-dialog-icon network-dialog-icon--loading", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
10
+ React.createElement("circle", { cx: "12", cy: "12", r: "11", stroke: "currentColor", strokeWidth: "2", opacity: "0.3" }),
11
+ React.createElement("path", { d: "M23 12C23 18.0751 18.0751 23 12 23", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" })));
12
+ const getIcon = (iconType) => {
13
+ switch (iconType) {
14
+ case 'warning':
15
+ return React.createElement(WarningIcon, null);
16
+ case 'info':
17
+ return React.createElement(InfoIcon, null);
18
+ case 'loading':
19
+ return React.createElement(LoadingIcon, null);
20
+ default:
21
+ return React.createElement(InfoIcon, null);
22
+ }
23
+ };
24
+ const NetworkDialogView = (props) => {
25
+ const { details = {}, isVisible = false } = props;
26
+ const { description, icon = 'info' } = details;
27
+ if (!description || !isVisible)
28
+ return null;
29
+ return (React.createElement("div", { className: "network-dialog-container" },
30
+ React.createElement("div", { className: "network-dialog-notification" },
31
+ getIcon(icon),
32
+ React.createElement("p", { className: "T10 FONT_BOLD" }, description))));
33
+ };
34
+ export default NetworkDialogView;
@@ -0,0 +1,2 @@
1
+ import NetworkDialog from './NetworkDialog';
2
+ export default NetworkDialog;
@@ -0,0 +1,2 @@
1
+ import NetworkDialog from './NetworkDialog';
2
+ export default NetworkDialog;
@@ -0,0 +1,104 @@
1
+ /// <reference types="prop-types" />
2
+ import { WithFocusableProps } from '@/external/spatial-navigation';
3
+ import React from 'react';
4
+ import './NetworkError.styles.css';
5
+ type NetworkErrorViewDetails = {
6
+ description?: string;
7
+ actionButtonText?: string;
8
+ };
9
+ interface NetworkErrorViewState {
10
+ details?: NetworkErrorViewDetails;
11
+ isVisible?: boolean;
12
+ }
13
+ declare const _default: {
14
+ new (props: (NetworkErrorViewState & WithFocusableProps) | Readonly<NetworkErrorViewState & WithFocusableProps>): {
15
+ state: import("../../../external/spatial-navigation/withFocusable").WithFocusableState;
16
+ navigation: import("../../../external/spatial-navigation/spatialNavigation").default;
17
+ getChildContext(): {
18
+ parentFocusKey: string;
19
+ };
20
+ setFocus: (focusKey: string) => void;
21
+ navigateByDirection: (direction: import("../../../external/spatial-navigation/utils").Direction, details?: import("../../../external/spatial-navigation/utils").Details) => void;
22
+ stealFocus: () => void;
23
+ onUpdateFocus: (focused: boolean) => void;
24
+ onUpdateHasFocusedChild: (hasFocusedChild: boolean) => void;
25
+ onEnterPressHandler: (details: import("../../../external/spatial-navigation/utils").Details) => void;
26
+ onClickPressHandler: (details: import("../../../external/spatial-navigation/utils").Details) => void;
27
+ onEnterReleaseHandler: () => void;
28
+ onBackPressHandler: (details: import("../../../external/spatial-navigation/utils").Details) => void;
29
+ onArrowPressHandler: (direction: import("../../../external/spatial-navigation/utils").Direction, details: import("../../../external/spatial-navigation/utils").Details) => boolean | void;
30
+ onBecameFocusedHandler: (layout: import("../../../external/spatial-navigation/utils").Layout, details: import("../../../external/spatial-navigation/utils").Details) => void;
31
+ onBecameBlurredHandler: (layout: import("../../../external/spatial-navigation/utils").Layout, details: import("../../../external/spatial-navigation/utils").Details) => void;
32
+ componentDidMount(): void;
33
+ componentDidUpdate(): void;
34
+ componentWillUnmount(): void;
35
+ render(): React.ReactElement<NetworkErrorViewState & WithFocusableProps, string | React.JSXElementConstructor<any>>;
36
+ context: any;
37
+ setState<K extends keyof import("../../../external/spatial-navigation/withFocusable").WithFocusableState>(state: import("../../../external/spatial-navigation/withFocusable").WithFocusableState | ((prevState: Readonly<import("../../../external/spatial-navigation/withFocusable").WithFocusableState>, props: Readonly<NetworkErrorViewState & WithFocusableProps>) => import("../../../external/spatial-navigation/withFocusable").WithFocusableState | Pick<import("../../../external/spatial-navigation/withFocusable").WithFocusableState, K> | null) | Pick<import("../../../external/spatial-navigation/withFocusable").WithFocusableState, K> | null, callback?: (() => void) | undefined): void;
38
+ forceUpdate(callback?: (() => void) | undefined): void;
39
+ readonly props: Readonly<NetworkErrorViewState & WithFocusableProps> & Readonly<{
40
+ children?: React.ReactNode;
41
+ }>;
42
+ refs: {
43
+ [key: string]: React.ReactInstance;
44
+ };
45
+ shouldComponentUpdate?(nextProps: Readonly<NetworkErrorViewState & WithFocusableProps>, nextState: Readonly<import("../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): boolean;
46
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
47
+ getSnapshotBeforeUpdate?(prevProps: Readonly<NetworkErrorViewState & WithFocusableProps>, prevState: Readonly<import("../../../external/spatial-navigation/withFocusable").WithFocusableState>): any;
48
+ componentWillMount?(): void;
49
+ UNSAFE_componentWillMount?(): void;
50
+ componentWillReceiveProps?(nextProps: Readonly<NetworkErrorViewState & WithFocusableProps>, nextContext: any): void;
51
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<NetworkErrorViewState & WithFocusableProps>, nextContext: any): void;
52
+ componentWillUpdate?(nextProps: Readonly<NetworkErrorViewState & WithFocusableProps>, nextState: Readonly<import("../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): void;
53
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<NetworkErrorViewState & WithFocusableProps>, nextState: Readonly<import("../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): void;
54
+ };
55
+ new (props: NetworkErrorViewState & WithFocusableProps, context: any): {
56
+ state: import("../../../external/spatial-navigation/withFocusable").WithFocusableState;
57
+ navigation: import("../../../external/spatial-navigation/spatialNavigation").default;
58
+ getChildContext(): {
59
+ parentFocusKey: string;
60
+ };
61
+ setFocus: (focusKey: string) => void;
62
+ navigateByDirection: (direction: import("../../../external/spatial-navigation/utils").Direction, details?: import("../../../external/spatial-navigation/utils").Details) => void;
63
+ stealFocus: () => void;
64
+ onUpdateFocus: (focused: boolean) => void;
65
+ onUpdateHasFocusedChild: (hasFocusedChild: boolean) => void;
66
+ onEnterPressHandler: (details: import("../../../external/spatial-navigation/utils").Details) => void;
67
+ onClickPressHandler: (details: import("../../../external/spatial-navigation/utils").Details) => void;
68
+ onEnterReleaseHandler: () => void;
69
+ onBackPressHandler: (details: import("../../../external/spatial-navigation/utils").Details) => void;
70
+ onArrowPressHandler: (direction: import("../../../external/spatial-navigation/utils").Direction, details: import("../../../external/spatial-navigation/utils").Details) => boolean | void;
71
+ onBecameFocusedHandler: (layout: import("../../../external/spatial-navigation/utils").Layout, details: import("../../../external/spatial-navigation/utils").Details) => void;
72
+ onBecameBlurredHandler: (layout: import("../../../external/spatial-navigation/utils").Layout, details: import("../../../external/spatial-navigation/utils").Details) => void;
73
+ componentDidMount(): void;
74
+ componentDidUpdate(): void;
75
+ componentWillUnmount(): void;
76
+ render(): React.ReactElement<NetworkErrorViewState & WithFocusableProps, string | React.JSXElementConstructor<any>>;
77
+ context: any;
78
+ setState<K extends keyof import("../../../external/spatial-navigation/withFocusable").WithFocusableState>(state: import("../../../external/spatial-navigation/withFocusable").WithFocusableState | ((prevState: Readonly<import("../../../external/spatial-navigation/withFocusable").WithFocusableState>, props: Readonly<NetworkErrorViewState & WithFocusableProps>) => import("../../../external/spatial-navigation/withFocusable").WithFocusableState | Pick<import("../../../external/spatial-navigation/withFocusable").WithFocusableState, K> | null) | Pick<import("../../../external/spatial-navigation/withFocusable").WithFocusableState, K> | null, callback?: (() => void) | undefined): void;
79
+ forceUpdate(callback?: (() => void) | undefined): void;
80
+ readonly props: Readonly<NetworkErrorViewState & WithFocusableProps> & Readonly<{
81
+ children?: React.ReactNode;
82
+ }>;
83
+ refs: {
84
+ [key: string]: React.ReactInstance;
85
+ };
86
+ shouldComponentUpdate?(nextProps: Readonly<NetworkErrorViewState & WithFocusableProps>, nextState: Readonly<import("../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): boolean;
87
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
88
+ getSnapshotBeforeUpdate?(prevProps: Readonly<NetworkErrorViewState & WithFocusableProps>, prevState: Readonly<import("../../../external/spatial-navigation/withFocusable").WithFocusableState>): any;
89
+ componentWillMount?(): void;
90
+ UNSAFE_componentWillMount?(): void;
91
+ componentWillReceiveProps?(nextProps: Readonly<NetworkErrorViewState & WithFocusableProps>, nextContext: any): void;
92
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<NetworkErrorViewState & WithFocusableProps>, nextContext: any): void;
93
+ componentWillUpdate?(nextProps: Readonly<NetworkErrorViewState & WithFocusableProps>, nextState: Readonly<import("../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): void;
94
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<NetworkErrorViewState & WithFocusableProps>, nextState: Readonly<import("../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): void;
95
+ };
96
+ contextTypes: {
97
+ parentFocusKey: import("prop-types").Requireable<string>;
98
+ };
99
+ childContextTypes: {
100
+ parentFocusKey: import("prop-types").Requireable<string>;
101
+ };
102
+ contextType?: React.Context<any> | undefined;
103
+ };
104
+ export default _default;
@@ -0,0 +1,26 @@
1
+ import { withFocusable, } from '@/external/spatial-navigation';
2
+ import React from 'react';
3
+ import ActionButton from '../ActionButton';
4
+ import './NetworkError.styles.css';
5
+ const DefaultDetails = {
6
+ description: '',
7
+ actionButtonText: '',
8
+ };
9
+ const NetworkErrorView = (props) => {
10
+ const { focused, onEnterPress, details = DefaultDetails, isVisible = false, focusKey = 'network-error', } = props;
11
+ const { description, actionButtonText } = details;
12
+ if ((!description && !actionButtonText) || !isVisible)
13
+ return null;
14
+ return (React.createElement(React.Fragment, null,
15
+ React.createElement("div", { "data-focused": focused, className: "network-error-container" },
16
+ React.createElement("div", { className: "network-error-content" },
17
+ description && React.createElement("p", { className: "T10 FONT_BOLD" }, description),
18
+ actionButtonText && (React.createElement("div", { className: "fox" },
19
+ React.createElement(ActionButton, { focusKey: `${focusKey}-action-button`, "data-focused": focused, onEnterPress: onEnterPress }, actionButtonText))))),
20
+ React.createElement("div", { className: "network-error-background" })));
21
+ };
22
+ export default withFocusable({
23
+ trackChildren: true,
24
+ autoRestoreFocus: true,
25
+ blockNavigationOut: true,
26
+ })(NetworkErrorView);
@@ -0,0 +1,2 @@
1
+ import NetworkError from './NetworkError';
2
+ export default NetworkError;
@@ -0,0 +1,2 @@
1
+ import NetworkError from './NetworkError';
2
+ export default NetworkError;
@@ -6,6 +6,7 @@ type PanelNavButtonProps = {
6
6
  iconName: IconsName;
7
7
  index: number;
8
8
  active: boolean;
9
+ isFoxSite: boolean;
9
10
  children?: React.ReactNode;
10
11
  focused?: boolean;
11
12
  focusKey: string;
@@ -4,18 +4,27 @@ import './PanelNavButton.styles.css';
4
4
  import React from 'react';
5
5
  import { withFocusable } from '@/external/spatial-navigation';
6
6
  class PanelNavButton extends React.Component {
7
+ getContainerClassName() {
8
+ const { active, isFoxSite } = this.props;
9
+ if (isFoxSite && active) {
10
+ return 'panel-nav-button-container panel-nav-button-container-fox T02 panel-nav-button-active';
11
+ }
12
+ if (isFoxSite) {
13
+ return 'panel-nav-button-container panel-nav-button-container-fox T02';
14
+ }
15
+ if (active) {
16
+ return 'panel-nav-button-container T02 panel-nav-button-active';
17
+ }
18
+ return 'panel-nav-button-container T02';
19
+ }
7
20
  render() {
8
- const { iconName, active, children, focused, width } = this.props;
9
- return (React.createElement("div", { className: [
10
- 'panel-nav-button-container',
11
- 'T02',
12
- active ? 'panel-nav-button-active' : '',
13
- ].join(' '), "data-focused": focused, style: {
21
+ const { iconName, isFoxSite, children, focused, width } = this.props;
22
+ return (React.createElement("div", { className: this.getContainerClassName(), "data-focused": focused, style: {
14
23
  width,
15
24
  } },
16
25
  React.createElement(BaseButton, null,
17
26
  React.createElement(Icon, { iconName: iconName, height: 36, width: 36 })),
18
- React.createElement("div", { className: "panel-nav-label FONT_BOLD" }, children)));
27
+ !isFoxSite && (React.createElement("div", { className: "panel-nav-label FONT_BOLD" }, children))));
19
28
  }
20
29
  }
21
30
  Object.defineProperty(PanelNavButton, "displayName", {
@@ -8,6 +8,7 @@ interface PanelNavigationProps {
8
8
  iconName: IconsName;
9
9
  active: boolean;
10
10
  }[];
11
+ isFoxSite: boolean;
11
12
  }
12
13
  declare class PanelNavigation extends React.Component<PanelNavigationProps> {
13
14
  handleBecameFocused: (index: number) => () => void;
@@ -2,8 +2,9 @@ import PanelNavButton from '@/components/molecules/PanelNavButton';
2
2
  import './PanelNavigation.styles.css';
3
3
  import React from 'react';
4
4
  import SDK from '@/index';
5
- import { withFocusable, } from '@/external/spatial-navigation';
6
- const BUTTON_MARGIN = 12;
5
+ import { withFocusable } from '@/external/spatial-navigation';
6
+ const ESPN_BUTTON_MARGIN = 12;
7
+ const FOX_BUTTON_MARGIN = 8;
7
8
  class PanelNavigationButton extends React.Component {
8
9
  constructor() {
9
10
  super(...arguments);
@@ -23,8 +24,8 @@ class PanelNavigationButton extends React.Component {
23
24
  });
24
25
  }
25
26
  render() {
26
- const { item, index, width } = this.props;
27
- return (React.createElement(PanelNavButton, { iconName: item.iconName, key: item.title, index: index, onBecameFocused: this.props.onBecameFocused(index), active: item.active, focusKey: `PANEL_NAV_BUTTON_${index}`, onArrowPress: this.handleArrowPress, parentFocusKey: "PANEL_NAVIGATION", width: width }, item.title));
27
+ const { item, index, isFoxSite, width } = this.props;
28
+ return (React.createElement(PanelNavButton, { iconName: item.iconName, key: item.title, index: index, isFoxSite: isFoxSite, onBecameFocused: this.props.onBecameFocused(index), active: item.active, focusKey: `PANEL_NAV_BUTTON_${index}`, onArrowPress: this.handleArrowPress, parentFocusKey: "PANEL_NAVIGATION", width: width }, item.title));
28
29
  }
29
30
  }
30
31
  class PanelNavigation extends React.Component {
@@ -43,17 +44,20 @@ class PanelNavigation extends React.Component {
43
44
  }
44
45
  render() {
45
46
  const itemsCount = this.props.items.length;
47
+ const { isFoxSite } = this.props;
48
+ const buttonMargin = isFoxSite ? FOX_BUTTON_MARGIN : ESPN_BUTTON_MARGIN;
46
49
  if (itemsCount === 0) {
47
50
  return null;
48
51
  }
49
- const marginTotal = (itemsCount - 1) * BUTTON_MARGIN;
52
+ const marginTotal = (itemsCount - 1) * buttonMargin;
50
53
  const buttonWidth = `calc((100% - ${marginTotal}px) / ${itemsCount})`;
51
- return (React.createElement(FocusableWrapper, { focusKey: "PANEL_NAVIGATION" }, this.props.items.map((item, index) => (React.createElement(PanelNavigationButton, { onBecameFocused: this.handleBecameFocused, key: item.title, item: item, index: index, width: buttonWidth })))));
54
+ return (React.createElement(FocusableWrapper, { focusKey: "PANEL_NAVIGATION", isFoxSite: isFoxSite }, this.props.items.map((item, index) => (React.createElement(PanelNavigationButton, { onBecameFocused: this.handleBecameFocused, key: item.title, item: item, index: index, isFoxSite: isFoxSite, width: buttonWidth })))));
52
55
  }
53
56
  }
54
57
  class Wrapper extends React.Component {
55
58
  render() {
56
- return React.createElement("div", { className: "panel-navigation" }, this.props.children);
59
+ const { isFoxSite } = this.props;
60
+ return (React.createElement("div", { className: 'panel-navigation' + (isFoxSite ? ' panel-navigation-fox' : '') }, this.props.children));
57
61
  }
58
62
  }
59
63
  const FocusableWrapper = withFocusable({ trackChildren: true })(Wrapper);
@@ -61,6 +61,7 @@ export default class MaestroEventDelegate {
61
61
  throw new Error('Method not implemented.');
62
62
  }
63
63
  startFocusManagement() {
64
+ alert('Focus going to client. Passing back to SDK');
64
65
  return Promise.resolve(SDK.getMaestroEventViewModel().startFocusManagement());
65
66
  }
66
67
  userIsAuthenticated() {
@@ -0,0 +1 @@
1
+ export declare const isFoxSiteID: (siteID: string) => boolean;
@@ -0,0 +1,6 @@
1
+ import { SITE_BRAND_BY_SITE_ID } from './siteConfig';
2
+ export const isFoxSiteID = (siteID) => {
3
+ const normalizedSiteID = siteID.trim().toLowerCase();
4
+ const siteBrand = SITE_BRAND_BY_SITE_ID[normalizedSiteID];
5
+ return siteBrand === 'fox';
6
+ };
@@ -0,0 +1 @@
1
+ export declare const SITE_BRAND_BY_SITE_ID: Record<string, 'espn' | 'fox' | 'maestro'>;
@@ -0,0 +1,5 @@
1
+ export const SITE_BRAND_BY_SITE_ID = {
2
+ '664b9c57d59a7a431542d814': 'espn',
3
+ '69388ee52b46b639897261f1': 'maestro',
4
+ '695c05610f99e7584a1b7407': 'fox',
5
+ };
@@ -6,7 +6,7 @@ export declare const MaestroPanelType: {
6
6
  readonly ESPN_SHOP: "espnShop";
7
7
  readonly HELLO_WORLD: "helloWorld";
8
8
  readonly FOX_KEY_PLAYS: "foxKeyPlays";
9
- readonly FOX_MULTI_VIEW: "foxMultiview";
9
+ readonly FOX_MULTI_VIEW: "foxMultiView";
10
10
  readonly FOX_STATS: "foxStats";
11
11
  readonly BUILDER_BLOCK_PANEL: "builderBlockPanel";
12
12
  };
@@ -6,7 +6,7 @@ export const MaestroPanelType = {
6
6
  ESPN_SHOP: 'espnShop',
7
7
  HELLO_WORLD: 'helloWorld',
8
8
  FOX_KEY_PLAYS: 'foxKeyPlays',
9
- FOX_MULTI_VIEW: 'foxMultiview',
9
+ FOX_MULTI_VIEW: 'foxMultiView',
10
10
  FOX_STATS: 'foxStats',
11
11
  BUILDER_BLOCK_PANEL: 'builderBlockPanel',
12
12
  };
@@ -8,8 +8,8 @@ import HotPropsView from './HotProps/HotPropsView';
8
8
  import GamblingDisclaimer from './components/GamblingDisclaimer/GamblingDisclaimer';
9
9
  import LocationWarning from './components/LocationWarning/LocationWarning';
10
10
  import { BetItemPromoCode } from './components/PromoCodeBanner';
11
- import TabLoadErrorView from '@/components/molecules/TabLoadError';
12
11
  import { setupMaxHeightToBottom } from '@/hooks/useMaxHeightToBottom';
12
+ import TabLoadErrorView from '../../components/TabLoadError';
13
13
  class BetsView extends Component {
14
14
  constructor(props) {
15
15
  super(props);
@@ -0,0 +1,96 @@
1
+ /// <reference types="prop-types" />
2
+ import { WithFocusableProps } from '@/external/spatial-navigation';
3
+ import React from 'react';
4
+ import './TabLoadError.styles.css';
5
+ declare const _default: {
6
+ new (props: (object & WithFocusableProps) | Readonly<object & WithFocusableProps>): {
7
+ state: import("../../../../external/spatial-navigation/withFocusable").WithFocusableState;
8
+ navigation: import("../../../../external/spatial-navigation/spatialNavigation").default;
9
+ getChildContext(): {
10
+ parentFocusKey: string;
11
+ };
12
+ setFocus: (focusKey: string) => void;
13
+ navigateByDirection: (direction: import("../../../../external/spatial-navigation/utils").Direction, details?: import("../../../../external/spatial-navigation/utils").Details) => void;
14
+ stealFocus: () => void;
15
+ onUpdateFocus: (focused: boolean) => void;
16
+ onUpdateHasFocusedChild: (hasFocusedChild: boolean) => void;
17
+ onEnterPressHandler: (details: import("../../../../external/spatial-navigation/utils").Details) => void;
18
+ onClickPressHandler: (details: import("../../../../external/spatial-navigation/utils").Details) => void;
19
+ onEnterReleaseHandler: () => void;
20
+ onBackPressHandler: (details: import("../../../../external/spatial-navigation/utils").Details) => void;
21
+ onArrowPressHandler: (direction: import("../../../../external/spatial-navigation/utils").Direction, details: import("../../../../external/spatial-navigation/utils").Details) => boolean | void;
22
+ onBecameFocusedHandler: (layout: import("../../../../external/spatial-navigation/utils").Layout, details: import("../../../../external/spatial-navigation/utils").Details) => void;
23
+ onBecameBlurredHandler: (layout: import("../../../../external/spatial-navigation/utils").Layout, details: import("../../../../external/spatial-navigation/utils").Details) => void;
24
+ componentDidMount(): void;
25
+ componentDidUpdate(): void;
26
+ componentWillUnmount(): void;
27
+ render(): React.ReactElement<object & WithFocusableProps, string | React.JSXElementConstructor<any>>;
28
+ context: any;
29
+ setState<K extends keyof import("../../../../external/spatial-navigation/withFocusable").WithFocusableState>(state: import("../../../../external/spatial-navigation/withFocusable").WithFocusableState | ((prevState: Readonly<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState>, props: Readonly<object & WithFocusableProps>) => import("../../../../external/spatial-navigation/withFocusable").WithFocusableState | Pick<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState, K> | null) | Pick<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState, K> | null, callback?: (() => void) | undefined): void;
30
+ forceUpdate(callback?: (() => void) | undefined): void;
31
+ readonly props: Readonly<object & WithFocusableProps> & Readonly<{
32
+ children?: React.ReactNode;
33
+ }>;
34
+ refs: {
35
+ [key: string]: React.ReactInstance;
36
+ };
37
+ shouldComponentUpdate?(nextProps: Readonly<object & WithFocusableProps>, nextState: Readonly<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): boolean;
38
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
39
+ getSnapshotBeforeUpdate?(prevProps: Readonly<object & WithFocusableProps>, prevState: Readonly<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState>): any;
40
+ componentWillMount?(): void;
41
+ UNSAFE_componentWillMount?(): void;
42
+ componentWillReceiveProps?(nextProps: Readonly<object & WithFocusableProps>, nextContext: any): void;
43
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<object & WithFocusableProps>, nextContext: any): void;
44
+ componentWillUpdate?(nextProps: Readonly<object & WithFocusableProps>, nextState: Readonly<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): void;
45
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<object & WithFocusableProps>, nextState: Readonly<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): void;
46
+ };
47
+ new (props: object & WithFocusableProps, context: any): {
48
+ state: import("../../../../external/spatial-navigation/withFocusable").WithFocusableState;
49
+ navigation: import("../../../../external/spatial-navigation/spatialNavigation").default;
50
+ getChildContext(): {
51
+ parentFocusKey: string;
52
+ };
53
+ setFocus: (focusKey: string) => void;
54
+ navigateByDirection: (direction: import("../../../../external/spatial-navigation/utils").Direction, details?: import("../../../../external/spatial-navigation/utils").Details) => void;
55
+ stealFocus: () => void;
56
+ onUpdateFocus: (focused: boolean) => void;
57
+ onUpdateHasFocusedChild: (hasFocusedChild: boolean) => void;
58
+ onEnterPressHandler: (details: import("../../../../external/spatial-navigation/utils").Details) => void;
59
+ onClickPressHandler: (details: import("../../../../external/spatial-navigation/utils").Details) => void;
60
+ onEnterReleaseHandler: () => void;
61
+ onBackPressHandler: (details: import("../../../../external/spatial-navigation/utils").Details) => void;
62
+ onArrowPressHandler: (direction: import("../../../../external/spatial-navigation/utils").Direction, details: import("../../../../external/spatial-navigation/utils").Details) => boolean | void;
63
+ onBecameFocusedHandler: (layout: import("../../../../external/spatial-navigation/utils").Layout, details: import("../../../../external/spatial-navigation/utils").Details) => void;
64
+ onBecameBlurredHandler: (layout: import("../../../../external/spatial-navigation/utils").Layout, details: import("../../../../external/spatial-navigation/utils").Details) => void;
65
+ componentDidMount(): void;
66
+ componentDidUpdate(): void;
67
+ componentWillUnmount(): void;
68
+ render(): React.ReactElement<object & WithFocusableProps, string | React.JSXElementConstructor<any>>;
69
+ context: any;
70
+ setState<K extends keyof import("../../../../external/spatial-navigation/withFocusable").WithFocusableState>(state: import("../../../../external/spatial-navigation/withFocusable").WithFocusableState | ((prevState: Readonly<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState>, props: Readonly<object & WithFocusableProps>) => import("../../../../external/spatial-navigation/withFocusable").WithFocusableState | Pick<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState, K> | null) | Pick<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState, K> | null, callback?: (() => void) | undefined): void;
71
+ forceUpdate(callback?: (() => void) | undefined): void;
72
+ readonly props: Readonly<object & WithFocusableProps> & Readonly<{
73
+ children?: React.ReactNode;
74
+ }>;
75
+ refs: {
76
+ [key: string]: React.ReactInstance;
77
+ };
78
+ shouldComponentUpdate?(nextProps: Readonly<object & WithFocusableProps>, nextState: Readonly<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): boolean;
79
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
80
+ getSnapshotBeforeUpdate?(prevProps: Readonly<object & WithFocusableProps>, prevState: Readonly<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState>): any;
81
+ componentWillMount?(): void;
82
+ UNSAFE_componentWillMount?(): void;
83
+ componentWillReceiveProps?(nextProps: Readonly<object & WithFocusableProps>, nextContext: any): void;
84
+ UNSAFE_componentWillReceiveProps?(nextProps: Readonly<object & WithFocusableProps>, nextContext: any): void;
85
+ componentWillUpdate?(nextProps: Readonly<object & WithFocusableProps>, nextState: Readonly<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): void;
86
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<object & WithFocusableProps>, nextState: Readonly<import("../../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): void;
87
+ };
88
+ contextTypes: {
89
+ parentFocusKey: import("prop-types").Requireable<string>;
90
+ };
91
+ childContextTypes: {
92
+ parentFocusKey: import("prop-types").Requireable<string>;
93
+ };
94
+ contextType?: React.Context<any> | undefined;
95
+ };
96
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import { withFocusable, } from '@/external/spatial-navigation';
2
+ import React from 'react';
3
+ import './TabLoadError.styles.css';
4
+ import ActionButton from '@/components/molecules/ActionButton';
5
+ class TabLoadErrorView extends React.Component {
6
+ render() {
7
+ const { focused, onEnterPress } = this.props;
8
+ return (React.createElement("div", { "data-focused": focused, className: "tab-load-error focus-ring" },
9
+ React.createElement("h3", { className: "T70" }, "We dropped the ball."),
10
+ React.createElement("p", { className: "T20" }, "We're having trouble loading that for you. Please try again."),
11
+ React.createElement(ActionButton, { "data-focused": focused, onEnterPress: onEnterPress }, "Try Again")));
12
+ }
13
+ }
14
+ export default withFocusable()(TabLoadErrorView);
@@ -0,0 +1,2 @@
1
+ import TabLoadErrorView from './TabLoadError';
2
+ export default TabLoadErrorView;
@@ -0,0 +1,2 @@
1
+ import TabLoadErrorView from './TabLoadError';
2
+ export default TabLoadErrorView;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="prop-types" />
2
2
  import React from 'react';
3
3
  import { WithFocusableProps } from '@/external/spatial-navigation';
4
- import { Direction, Layout } from '@/external/spatial-navigation/utils';
4
+ import { Layout } from '@/external/spatial-navigation/utils';
5
5
  import './TournamentOverflowQR.styles.css';
6
6
  import { TournamentOverflowQRItem } from '../../types';
7
7
  type Props = {
@@ -17,7 +17,7 @@ declare const _default: {
17
17
  parentFocusKey: string;
18
18
  };
19
19
  setFocus: (focusKey: string) => void;
20
- navigateByDirection: (direction: Direction, details?: import("@/external/spatial-navigation/utils").Details) => void;
20
+ navigateByDirection: (direction: import("@/external/spatial-navigation/utils").Direction, details?: import("@/external/spatial-navigation/utils").Details) => void;
21
21
  stealFocus: () => void;
22
22
  onUpdateFocus: (focused: boolean) => void;
23
23
  onUpdateHasFocusedChild: (hasFocusedChild: boolean) => void;
@@ -25,7 +25,7 @@ declare const _default: {
25
25
  onClickPressHandler: (details: import("@/external/spatial-navigation/utils").Details) => void;
26
26
  onEnterReleaseHandler: () => void;
27
27
  onBackPressHandler: (details: import("@/external/spatial-navigation/utils").Details) => void;
28
- onArrowPressHandler: (direction: Direction, details: import("@/external/spatial-navigation/utils").Details) => boolean | void;
28
+ onArrowPressHandler: (direction: import("@/external/spatial-navigation/utils").Direction, details: import("@/external/spatial-navigation/utils").Details) => boolean | void;
29
29
  onBecameFocusedHandler: (layout: Layout, details: import("@/external/spatial-navigation/utils").Details) => void;
30
30
  onBecameBlurredHandler: (layout: Layout, details: import("@/external/spatial-navigation/utils").Details) => void;
31
31
  componentDidMount(): void;
@@ -58,7 +58,7 @@ declare const _default: {
58
58
  parentFocusKey: string;
59
59
  };
60
60
  setFocus: (focusKey: string) => void;
61
- navigateByDirection: (direction: Direction, details?: import("@/external/spatial-navigation/utils").Details) => void;
61
+ navigateByDirection: (direction: import("@/external/spatial-navigation/utils").Direction, details?: import("@/external/spatial-navigation/utils").Details) => void;
62
62
  stealFocus: () => void;
63
63
  onUpdateFocus: (focused: boolean) => void;
64
64
  onUpdateHasFocusedChild: (hasFocusedChild: boolean) => void;
@@ -66,7 +66,7 @@ declare const _default: {
66
66
  onClickPressHandler: (details: import("@/external/spatial-navigation/utils").Details) => void;
67
67
  onEnterReleaseHandler: () => void;
68
68
  onBackPressHandler: (details: import("@/external/spatial-navigation/utils").Details) => void;
69
- onArrowPressHandler: (direction: Direction, details: import("@/external/spatial-navigation/utils").Details) => boolean | void;
69
+ onArrowPressHandler: (direction: import("@/external/spatial-navigation/utils").Direction, details: import("@/external/spatial-navigation/utils").Details) => boolean | void;
70
70
  onBecameFocusedHandler: (layout: Layout, details: import("@/external/spatial-navigation/utils").Details) => void;
71
71
  onBecameBlurredHandler: (layout: Layout, details: import("@/external/spatial-navigation/utils").Details) => void;
72
72
  componentDidMount(): void;