@maestro_io/maestro-web-sdk 5.1.2 → 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/1.maestro-web-sdk.esm.js +1 -1
- package/dist/1.maestro-web-sdk.esm.js.map +1 -1
- package/dist/10.maestro-web-sdk.esm.js +1 -1
- package/dist/10.maestro-web-sdk.esm.js.map +1 -1
- package/dist/11.maestro-web-sdk.esm.js +1 -1
- package/dist/11.maestro-web-sdk.esm.js.map +1 -1
- package/dist/12.maestro-web-sdk.esm.js +1 -1
- package/dist/12.maestro-web-sdk.esm.js.map +1 -1
- package/dist/13.maestro-web-sdk.esm.js +1 -1
- package/dist/13.maestro-web-sdk.esm.js.map +1 -1
- package/dist/14.maestro-web-sdk.esm.js +1 -1
- package/dist/14.maestro-web-sdk.esm.js.map +1 -1
- package/dist/15.maestro-web-sdk.esm.js +1 -1
- package/dist/15.maestro-web-sdk.esm.js.map +1 -1
- package/dist/16.maestro-web-sdk.esm.js +1 -1
- package/dist/16.maestro-web-sdk.esm.js.map +1 -1
- package/dist/17.maestro-web-sdk.esm.js +1 -1
- package/dist/17.maestro-web-sdk.esm.js.map +1 -1
- package/dist/18.maestro-web-sdk.esm.js +1 -1
- package/dist/18.maestro-web-sdk.esm.js.map +1 -1
- package/dist/19.maestro-web-sdk.esm.js +1 -1
- package/dist/19.maestro-web-sdk.esm.js.map +1 -1
- package/dist/2.maestro-web-sdk.esm.js +1 -1
- package/dist/20.maestro-web-sdk.esm.js +1 -1
- package/dist/20.maestro-web-sdk.esm.js.map +1 -1
- package/dist/21.maestro-web-sdk.esm.js +1 -1
- package/dist/21.maestro-web-sdk.esm.js.map +1 -1
- package/dist/22.maestro-web-sdk.esm.js +1 -1
- package/dist/22.maestro-web-sdk.esm.js.map +1 -1
- package/dist/23.maestro-web-sdk.esm.js +1 -1
- package/dist/23.maestro-web-sdk.esm.js.map +1 -1
- package/dist/24.maestro-web-sdk.esm.js +1 -1
- package/dist/24.maestro-web-sdk.esm.js.map +1 -1
- package/dist/25.maestro-web-sdk.esm.js +1 -1
- package/dist/25.maestro-web-sdk.esm.js.map +1 -1
- package/dist/26.maestro-web-sdk.esm.js +1 -1
- package/dist/26.maestro-web-sdk.esm.js.map +1 -1
- package/dist/27.maestro-web-sdk.esm.js +1 -1
- package/dist/27.maestro-web-sdk.esm.js.map +1 -1
- package/dist/28.maestro-web-sdk.esm.js +1 -1
- package/dist/28.maestro-web-sdk.esm.js.map +1 -1
- package/dist/29.maestro-web-sdk.esm.js +1 -1
- package/dist/29.maestro-web-sdk.esm.js.map +1 -1
- package/dist/3.maestro-web-sdk.esm.js +1 -1
- package/dist/3.maestro-web-sdk.esm.js.map +1 -1
- package/dist/30.maestro-web-sdk.esm.js +1 -1
- package/dist/30.maestro-web-sdk.esm.js.map +1 -1
- package/dist/31.maestro-web-sdk.esm.js +1 -1
- package/dist/31.maestro-web-sdk.esm.js.map +1 -1
- package/dist/32.maestro-web-sdk.esm.js +1 -1
- package/dist/32.maestro-web-sdk.esm.js.map +1 -1
- package/dist/33.maestro-web-sdk.esm.js +1 -1
- package/dist/33.maestro-web-sdk.esm.js.map +1 -1
- package/dist/34.maestro-web-sdk.esm.js +1 -1
- package/dist/34.maestro-web-sdk.esm.js.map +1 -1
- package/dist/35.maestro-web-sdk.esm.js +1 -1
- package/dist/35.maestro-web-sdk.esm.js.map +1 -1
- package/dist/36.maestro-web-sdk.esm.js +1 -1
- package/dist/36.maestro-web-sdk.esm.js.map +1 -1
- package/dist/37.maestro-web-sdk.esm.js +1 -1
- package/dist/37.maestro-web-sdk.esm.js.map +1 -1
- package/dist/38.maestro-web-sdk.esm.js +1 -1
- package/dist/38.maestro-web-sdk.esm.js.map +1 -1
- package/dist/39.maestro-web-sdk.esm.js +2 -0
- package/dist/39.maestro-web-sdk.esm.js.map +1 -0
- package/dist/4.maestro-web-sdk.esm.js +1 -1
- package/dist/4.maestro-web-sdk.esm.js.map +1 -1
- package/dist/40.maestro-web-sdk.esm.js +2 -0
- package/dist/40.maestro-web-sdk.esm.js.map +1 -0
- package/dist/5.maestro-web-sdk.esm.js +1 -1
- package/dist/5.maestro-web-sdk.esm.js.map +1 -1
- package/dist/6.maestro-web-sdk.esm.js +1 -1
- package/dist/6.maestro-web-sdk.esm.js.map +1 -1
- package/dist/7.maestro-web-sdk.esm.js +1 -1
- package/dist/7.maestro-web-sdk.esm.js.map +1 -1
- package/dist/8.maestro-web-sdk.esm.js +1 -1
- package/dist/8.maestro-web-sdk.esm.js.map +1 -1
- package/dist/9.maestro-web-sdk.esm.js +1 -1
- package/dist/9.maestro-web-sdk.esm.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/maestro-web-sdk.esm.js +3 -3
- package/dist/maestro-web-sdk.esm.js.map +1 -1
- package/dist/maestro-web-sdk.umd.js +3 -3
- package/dist/maestro-web-sdk.umd.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/src/components/atoms/SvgIcon/AddIcon.d.ts +3 -0
- package/dist/src/components/atoms/SvgIcon/AddIcon.js +6 -0
- package/dist/src/components/atoms/SvgIcon/Icon.js +2 -0
- package/dist/src/components/core/PanelManager/PanelManager.js +5 -3
- package/dist/src/components/molecules/NetworkDialog/NetworkDialog.d.ts +11 -0
- package/dist/src/components/molecules/NetworkDialog/NetworkDialog.js +34 -0
- package/dist/src/components/molecules/NetworkDialog/index.d.ts +2 -0
- package/dist/src/components/molecules/NetworkDialog/index.js +2 -0
- package/dist/src/components/molecules/NetworkError/NetworkError.d.ts +104 -0
- package/dist/src/components/molecules/NetworkError/NetworkError.js +26 -0
- package/dist/src/components/molecules/NetworkError/index.d.ts +2 -0
- package/dist/src/components/molecules/NetworkError/index.js +2 -0
- package/dist/src/components/molecules/PanelNavButton/PanelNavButton.d.ts +1 -0
- package/dist/src/components/molecules/PanelNavButton/PanelNavButton.js +16 -7
- package/dist/src/components/organisms/PanelNavigation/PanelNavigation.d.ts +1 -0
- package/dist/src/components/organisms/PanelNavigation/PanelNavigation.js +11 -7
- package/dist/src/development/MaestroEventDelegate.js +1 -0
- package/dist/src/helpers/site.d.ts +1 -0
- package/dist/src/helpers/site.js +6 -0
- package/dist/src/helpers/siteConfig.d.ts +1 -0
- package/dist/src/helpers/siteConfig.js +5 -0
- package/dist/src/models/IPanel.d.ts +1 -1
- package/dist/src/models/IPanel.js +1 -1
- package/dist/src/modules/espn/bets/services/BetsService.js +5 -5
- package/dist/src/modules/espn/bets/view/BetsView.js +1 -1
- package/dist/src/modules/espn/components/TabLoadError/TabLoadError.d.ts +96 -0
- package/dist/src/modules/espn/components/TabLoadError/TabLoadError.js +14 -0
- package/dist/src/modules/espn/components/TabLoadError/index.d.ts +2 -0
- package/dist/src/modules/espn/components/TabLoadError/index.js +2 -0
- package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/TournamentOverflowQR.d.ts +5 -5
- package/dist/src/modules/espn/fantasy/components/TournamentOverflowQR/TournamentOverflowQR.js +7 -73
- package/dist/src/modules/espn/fantasy/services/FantasyService.js +4 -1
- package/dist/src/modules/espn/fantasy/view/FantasyItemView.js +1 -1
- package/dist/src/modules/espn/fantasy/view/FantasyView.js +3 -2
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.FantasyPolling.d.ts +1 -1
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.FantasyPolling.js +10 -7
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.LeagueManagerPolling.d.ts +1 -1
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.LeagueManagerPolling.js +10 -7
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.TournamentPolling.d.ts +1 -1
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.TournamentPolling.js +10 -7
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.d.ts +1 -0
- package/dist/src/modules/espn/fantasy/view-model/FantasyViewModel.js +42 -32
- package/dist/src/modules/espn/key-plays/view/KeyPlayErrorStateView.js +1 -1
- package/dist/src/modules/espn/shop/services/ShopService.js +1 -1
- package/dist/src/modules/espn/shop/view/ShopView.js +1 -1
- package/dist/src/modules/espn/stats/services/StatsService.js +2 -2
- package/dist/src/modules/espn/stats/view/StatsView.js +1 -1
- package/dist/src/modules/fox/components/TabLoadError/TabLoadError.d.ts +96 -0
- package/dist/src/modules/fox/components/TabLoadError/TabLoadError.js +19 -0
- package/dist/src/modules/fox/components/TabLoadError/index.d.ts +2 -0
- package/dist/src/modules/fox/components/TabLoadError/index.js +2 -0
- package/dist/src/modules/fox/multi-view/interfaces/IMultiViewViewModel.d.ts +3 -0
- package/dist/src/modules/fox/multi-view/interfaces/IMultiViewViewModel.js +1 -0
- package/dist/src/modules/fox/multi-view/services/MultiViewService.d.ts +104 -0
- package/dist/src/modules/fox/multi-view/services/MultiViewService.js +97 -0
- package/dist/src/modules/fox/multi-view/types.d.ts +48 -42
- package/dist/src/modules/fox/multi-view/types.js +79 -82
- package/dist/src/modules/fox/multi-view/view/BuildYourOwn/BuildYourOwn.d.ts +7 -0
- package/dist/src/modules/fox/multi-view/view/BuildYourOwn/BuildYourOwn.js +99 -0
- package/dist/src/modules/fox/multi-view/view/BuildYourOwn/index.d.ts +2 -0
- package/dist/src/modules/fox/multi-view/view/BuildYourOwn/index.js +2 -0
- package/dist/src/modules/fox/multi-view/view/CuratedMultiview/CuratedMultiviews.d.ts +8 -0
- package/dist/src/modules/fox/multi-view/view/CuratedMultiview/CuratedMultiviews.js +92 -0
- package/dist/src/modules/fox/multi-view/view/CuratedMultiview/index.d.ts +2 -0
- package/dist/src/modules/fox/multi-view/view/CuratedMultiview/index.js +2 -0
- package/dist/src/modules/fox/multi-view/view/FoxMultiView.d.ts +1 -0
- package/dist/src/modules/fox/multi-view/view/FoxMultiView.js +65 -2
- package/dist/src/modules/fox/multi-view/view/components/BuildYourOwnTabs/BuildYourOwnTabs.d.ts +8 -0
- package/dist/src/modules/fox/multi-view/view/components/BuildYourOwnTabs/BuildYourOwnTabs.js +30 -0
- package/dist/src/modules/fox/multi-view/view/components/BuildYourOwnTabs/index.d.ts +2 -0
- package/dist/src/modules/fox/multi-view/view/components/BuildYourOwnTabs/index.js +2 -0
- package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/CustomMultiviewStreamsCard.d.ts +118 -0
- package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/CustomMultiviewStreamsCard.js +51 -0
- package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/index.d.ts +2 -0
- package/dist/src/modules/fox/multi-view/view/components/CustomMultiviewStreamsCard/index.js +2 -0
- package/dist/src/modules/fox/multi-view/view/components/LayoutSelector/LayoutSelector.d.ts +1 -1
- package/dist/src/modules/fox/multi-view/view/components/LayoutSelector/LayoutSelector.js +11 -14
- package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/CuratedMultiviewCard.d.ts +101 -0
- package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/CuratedMultiviewCard.js +41 -0
- package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/index.d.ts +2 -0
- package/dist/src/modules/fox/multi-view/view/components/curated-multiview-card/index.js +2 -0
- package/dist/src/modules/fox/multi-view/view-model/MultiViewViewModel.d.ts +84 -0
- package/dist/src/modules/fox/multi-view/view-model/MultiViewViewModel.js +509 -0
- package/dist/src/modules/fox/multi-view/view-model/index.d.ts +1 -0
- package/dist/src/modules/fox/multi-view/view-model/index.js +1 -0
- package/dist/src/services/NetworkManager/NetworkManager.js +1 -1
- package/dist/src/services/NetworkManager/errors.d.ts +3 -1
- package/dist/src/services/NetworkManager/errors.js +15 -1
- package/dist/src/services/StaticService/StaticService.js +1 -0
- package/dist/src/view-models/MaestroEventViewModel.d.ts +2 -0
- package/dist/src/view-models/MaestroEventViewModel.js +17 -1
- package/package.json +1 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/// <reference types="prop-types" />
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import './CuratedMultiviewCard.style.css';
|
|
4
|
+
import { WithFocusableProps } from '@/external/spatial-navigation';
|
|
5
|
+
import { CuratedMultiviewListing } from '../../../types';
|
|
6
|
+
export type CuratedMultiviewCardProps = {
|
|
7
|
+
listings: CuratedMultiviewListing[];
|
|
8
|
+
selected: boolean;
|
|
9
|
+
};
|
|
10
|
+
declare const _default: {
|
|
11
|
+
new (props: (CuratedMultiviewCardProps & WithFocusableProps) | Readonly<CuratedMultiviewCardProps & WithFocusableProps>): {
|
|
12
|
+
state: import("../../../../../../external/spatial-navigation/withFocusable").WithFocusableState;
|
|
13
|
+
navigation: import("../../../../../../external/spatial-navigation/spatialNavigation").default;
|
|
14
|
+
getChildContext(): {
|
|
15
|
+
parentFocusKey: string;
|
|
16
|
+
};
|
|
17
|
+
setFocus: (focusKey: string) => void;
|
|
18
|
+
navigateByDirection: (direction: import("../../../../../../external/spatial-navigation/utils").Direction, details?: import("../../../../../../external/spatial-navigation/utils").Details) => void;
|
|
19
|
+
stealFocus: () => void;
|
|
20
|
+
onUpdateFocus: (focused: boolean) => void;
|
|
21
|
+
onUpdateHasFocusedChild: (hasFocusedChild: boolean) => void;
|
|
22
|
+
onEnterPressHandler: (details: import("../../../../../../external/spatial-navigation/utils").Details) => void;
|
|
23
|
+
onClickPressHandler: (details: import("../../../../../../external/spatial-navigation/utils").Details) => void;
|
|
24
|
+
onEnterReleaseHandler: () => void;
|
|
25
|
+
onBackPressHandler: (details: import("../../../../../../external/spatial-navigation/utils").Details) => void;
|
|
26
|
+
onArrowPressHandler: (direction: import("../../../../../../external/spatial-navigation/utils").Direction, details: import("../../../../../../external/spatial-navigation/utils").Details) => boolean | void;
|
|
27
|
+
onBecameFocusedHandler: (layout: import("../../../../../../external/spatial-navigation/utils").Layout, details: import("../../../../../../external/spatial-navigation/utils").Details) => void;
|
|
28
|
+
onBecameBlurredHandler: (layout: import("../../../../../../external/spatial-navigation/utils").Layout, details: import("../../../../../../external/spatial-navigation/utils").Details) => void;
|
|
29
|
+
componentDidMount(): void;
|
|
30
|
+
componentDidUpdate(): void;
|
|
31
|
+
componentWillUnmount(): void;
|
|
32
|
+
render(): React.ReactElement<CuratedMultiviewCardProps & WithFocusableProps, string | React.JSXElementConstructor<any>>;
|
|
33
|
+
context: any;
|
|
34
|
+
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<CuratedMultiviewCardProps & 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;
|
|
35
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
|
36
|
+
readonly props: Readonly<CuratedMultiviewCardProps & WithFocusableProps> & Readonly<{
|
|
37
|
+
children?: React.ReactNode;
|
|
38
|
+
}>;
|
|
39
|
+
refs: {
|
|
40
|
+
[key: string]: React.ReactInstance;
|
|
41
|
+
};
|
|
42
|
+
shouldComponentUpdate?(nextProps: Readonly<CuratedMultiviewCardProps & WithFocusableProps>, nextState: Readonly<import("../../../../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): boolean;
|
|
43
|
+
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
|
44
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<CuratedMultiviewCardProps & WithFocusableProps>, prevState: Readonly<import("../../../../../../external/spatial-navigation/withFocusable").WithFocusableState>): any;
|
|
45
|
+
componentWillMount?(): void;
|
|
46
|
+
UNSAFE_componentWillMount?(): void;
|
|
47
|
+
componentWillReceiveProps?(nextProps: Readonly<CuratedMultiviewCardProps & WithFocusableProps>, nextContext: any): void;
|
|
48
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<CuratedMultiviewCardProps & WithFocusableProps>, nextContext: any): void;
|
|
49
|
+
componentWillUpdate?(nextProps: Readonly<CuratedMultiviewCardProps & WithFocusableProps>, nextState: Readonly<import("../../../../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): void;
|
|
50
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<CuratedMultiviewCardProps & WithFocusableProps>, nextState: Readonly<import("../../../../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): void;
|
|
51
|
+
};
|
|
52
|
+
new (props: CuratedMultiviewCardProps & WithFocusableProps, context: any): {
|
|
53
|
+
state: import("../../../../../../external/spatial-navigation/withFocusable").WithFocusableState;
|
|
54
|
+
navigation: import("../../../../../../external/spatial-navigation/spatialNavigation").default;
|
|
55
|
+
getChildContext(): {
|
|
56
|
+
parentFocusKey: string;
|
|
57
|
+
};
|
|
58
|
+
setFocus: (focusKey: string) => void;
|
|
59
|
+
navigateByDirection: (direction: import("../../../../../../external/spatial-navigation/utils").Direction, details?: import("../../../../../../external/spatial-navigation/utils").Details) => void;
|
|
60
|
+
stealFocus: () => void;
|
|
61
|
+
onUpdateFocus: (focused: boolean) => void;
|
|
62
|
+
onUpdateHasFocusedChild: (hasFocusedChild: boolean) => void;
|
|
63
|
+
onEnterPressHandler: (details: import("../../../../../../external/spatial-navigation/utils").Details) => void;
|
|
64
|
+
onClickPressHandler: (details: import("../../../../../../external/spatial-navigation/utils").Details) => void;
|
|
65
|
+
onEnterReleaseHandler: () => void;
|
|
66
|
+
onBackPressHandler: (details: import("../../../../../../external/spatial-navigation/utils").Details) => void;
|
|
67
|
+
onArrowPressHandler: (direction: import("../../../../../../external/spatial-navigation/utils").Direction, details: import("../../../../../../external/spatial-navigation/utils").Details) => boolean | void;
|
|
68
|
+
onBecameFocusedHandler: (layout: import("../../../../../../external/spatial-navigation/utils").Layout, details: import("../../../../../../external/spatial-navigation/utils").Details) => void;
|
|
69
|
+
onBecameBlurredHandler: (layout: import("../../../../../../external/spatial-navigation/utils").Layout, details: import("../../../../../../external/spatial-navigation/utils").Details) => void;
|
|
70
|
+
componentDidMount(): void;
|
|
71
|
+
componentDidUpdate(): void;
|
|
72
|
+
componentWillUnmount(): void;
|
|
73
|
+
render(): React.ReactElement<CuratedMultiviewCardProps & WithFocusableProps, string | React.JSXElementConstructor<any>>;
|
|
74
|
+
context: any;
|
|
75
|
+
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<CuratedMultiviewCardProps & 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;
|
|
76
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
|
77
|
+
readonly props: Readonly<CuratedMultiviewCardProps & WithFocusableProps> & Readonly<{
|
|
78
|
+
children?: React.ReactNode;
|
|
79
|
+
}>;
|
|
80
|
+
refs: {
|
|
81
|
+
[key: string]: React.ReactInstance;
|
|
82
|
+
};
|
|
83
|
+
shouldComponentUpdate?(nextProps: Readonly<CuratedMultiviewCardProps & WithFocusableProps>, nextState: Readonly<import("../../../../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): boolean;
|
|
84
|
+
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
|
85
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<CuratedMultiviewCardProps & WithFocusableProps>, prevState: Readonly<import("../../../../../../external/spatial-navigation/withFocusable").WithFocusableState>): any;
|
|
86
|
+
componentWillMount?(): void;
|
|
87
|
+
UNSAFE_componentWillMount?(): void;
|
|
88
|
+
componentWillReceiveProps?(nextProps: Readonly<CuratedMultiviewCardProps & WithFocusableProps>, nextContext: any): void;
|
|
89
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<CuratedMultiviewCardProps & WithFocusableProps>, nextContext: any): void;
|
|
90
|
+
componentWillUpdate?(nextProps: Readonly<CuratedMultiviewCardProps & WithFocusableProps>, nextState: Readonly<import("../../../../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): void;
|
|
91
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<CuratedMultiviewCardProps & WithFocusableProps>, nextState: Readonly<import("../../../../../../external/spatial-navigation/withFocusable").WithFocusableState>, nextContext: any): void;
|
|
92
|
+
};
|
|
93
|
+
contextTypes: {
|
|
94
|
+
parentFocusKey: import("prop-types").Requireable<string>;
|
|
95
|
+
};
|
|
96
|
+
childContextTypes: {
|
|
97
|
+
parentFocusKey: import("prop-types").Requireable<string>;
|
|
98
|
+
};
|
|
99
|
+
contextType?: React.Context<any> | undefined;
|
|
100
|
+
};
|
|
101
|
+
export default _default;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './CuratedMultiviewCard.style.css';
|
|
3
|
+
import { withFocusable, } from '@/external/spatial-navigation';
|
|
4
|
+
import Icon from '@/components/atoms/SvgIcon';
|
|
5
|
+
function getScreenDetails(listings) {
|
|
6
|
+
const imageLists = [];
|
|
7
|
+
const descriptionLists = [];
|
|
8
|
+
listings.forEach((listing) => {
|
|
9
|
+
if (listing.backgroundImage)
|
|
10
|
+
imageLists.push({ id: listing.id, image: listing.backgroundImage });
|
|
11
|
+
if (listing.description)
|
|
12
|
+
descriptionLists.push({
|
|
13
|
+
id: listing.id,
|
|
14
|
+
description: listing.description,
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
imageLists,
|
|
19
|
+
descriptionLists,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const StreamScreen = ({ screenDetails }) => {
|
|
23
|
+
const { imageLists, descriptionLists } = screenDetails;
|
|
24
|
+
return (React.createElement(React.Fragment, null,
|
|
25
|
+
React.createElement("div", { className: "curated-multiview-screen" },
|
|
26
|
+
React.createElement("div", null,
|
|
27
|
+
React.createElement("div", null, imageLists.map((imageList) => (React.createElement("img", { key: imageList.id, src: imageList.image, alt: imageList.id })))))),
|
|
28
|
+
React.createElement("div", { className: "curated-multiview-screen-description" }, descriptionLists.map((descriptionList) => (React.createElement("span", { key: descriptionList.id }, descriptionList.description))))));
|
|
29
|
+
};
|
|
30
|
+
const CuratedMultiviewCard = (props) => {
|
|
31
|
+
const { listings, selected, focused } = props;
|
|
32
|
+
const screenDetails = getScreenDetails(listings);
|
|
33
|
+
return (React.createElement("div", { className: "curated-multiview-card focus-ring", "data-focused": focused },
|
|
34
|
+
React.createElement("div", { className: "curated-multiview-card-row" },
|
|
35
|
+
React.createElement("div", { className: "curated-multiview-card-cell curated-multiview-card-cell-screens" },
|
|
36
|
+
React.createElement("div", { className: "curated-multiview-screens-container" },
|
|
37
|
+
React.createElement(StreamScreen, { screenDetails: screenDetails }))),
|
|
38
|
+
React.createElement("div", { className: "curated-multiview-card-cell curated-multiview-card-cell-radio" },
|
|
39
|
+
React.createElement("div", { className: "curated-multiview-radio", "data-selected": selected }, selected && React.createElement(Icon, { iconName: "checkmark", width: 22.5, height: 22 }))))));
|
|
40
|
+
};
|
|
41
|
+
export default withFocusable()(CuratedMultiviewCard);
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { ViewModel } from '@/view-models/ViewModel';
|
|
2
|
+
import { Observable } from '@/helpers/Observable';
|
|
3
|
+
import { CuratedMultiviewListing, CustomMultiviewStream, MultiViewLayout } from '../types';
|
|
4
|
+
import IMaestroEventDelegate from '@/interfaces/IMaestroEventDelegate';
|
|
5
|
+
import { CuratedMultiviewResponse, MultiViewListingRequest } from '../services/MultiViewService';
|
|
6
|
+
import AnalyticsService from '@/services/AnalyticsService/AnalyticsService';
|
|
7
|
+
export type CuratedMultiviewItem = {
|
|
8
|
+
id: string;
|
|
9
|
+
isSelected: boolean;
|
|
10
|
+
listings: CuratedMultiviewListing[];
|
|
11
|
+
};
|
|
12
|
+
export type CuratedMultiviewsItem = {
|
|
13
|
+
type: 'curated-multiviews';
|
|
14
|
+
items: CuratedMultiviewItem[];
|
|
15
|
+
};
|
|
16
|
+
export type BuildYourOwnItem = {
|
|
17
|
+
type: 'build-your-own';
|
|
18
|
+
streams: CustomMultiviewStream[];
|
|
19
|
+
};
|
|
20
|
+
export type MultiviewItem = CuratedMultiviewsItem | BuildYourOwnItem;
|
|
21
|
+
export declare class MultiViewViewModel extends ViewModel {
|
|
22
|
+
private _layouts;
|
|
23
|
+
private _isPolling;
|
|
24
|
+
private service;
|
|
25
|
+
private delegate;
|
|
26
|
+
private eventId;
|
|
27
|
+
private analyticsService;
|
|
28
|
+
isDataLoading: Observable<boolean>;
|
|
29
|
+
private pollingTask;
|
|
30
|
+
private pollingInterval;
|
|
31
|
+
items: Observable<MultiviewItem[]>;
|
|
32
|
+
private hasEverSuccessfullyLoaded;
|
|
33
|
+
private onAuthError?;
|
|
34
|
+
private _selectedLayoutId;
|
|
35
|
+
private lastResponseHash;
|
|
36
|
+
constructor(eventId: string, delegate: IMaestroEventDelegate, analyticsService: AnalyticsService);
|
|
37
|
+
getLayouts(): MultiViewLayout[];
|
|
38
|
+
getIsPolling(): Observable<boolean>;
|
|
39
|
+
getIsDataLoading(): Observable<boolean>;
|
|
40
|
+
getEventId(): string;
|
|
41
|
+
private updateBuildYourOwnItem;
|
|
42
|
+
private calculateElapsedTime;
|
|
43
|
+
private buildStreamsFromItems;
|
|
44
|
+
private mergeStreams;
|
|
45
|
+
getLayoutsObservable(): Observable<MultiViewLayout[]>;
|
|
46
|
+
getSelectedLayoutId(): Observable<string | null>;
|
|
47
|
+
onSelectLayout(layoutId: string): void;
|
|
48
|
+
onToggleCamera(streamId: string, cameraId: string): void;
|
|
49
|
+
/**
|
|
50
|
+
* Notify client app about a Product API auth error.
|
|
51
|
+
* Uses configured callback first, and falls back to onPanelEvent.
|
|
52
|
+
*/
|
|
53
|
+
private notifyProductAPIUnauthorized;
|
|
54
|
+
private trackPanelView;
|
|
55
|
+
init(): Promise<void>;
|
|
56
|
+
fetchLayouts(): Promise<void>;
|
|
57
|
+
setDataToPanel(data: Record<string, any>): Promise<void>;
|
|
58
|
+
onSelectCustomMultiview(params: MultiViewListingRequest): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Clean up resources when the ViewModel is no longer needed
|
|
61
|
+
*/
|
|
62
|
+
cleanup(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Called when a curated multiview is selected. Notifies the client via onPanelEvent
|
|
65
|
+
* so the app can switch the video player to the selected multiview.
|
|
66
|
+
*/
|
|
67
|
+
onSelectCuratedMultiview(item: CuratedMultiviewItem): void;
|
|
68
|
+
/**
|
|
69
|
+
* @description Update polling interval from panel config.
|
|
70
|
+
* Refresh polling if necessary.
|
|
71
|
+
*/
|
|
72
|
+
private updatePollingInterval;
|
|
73
|
+
private getPanelConfigInterval;
|
|
74
|
+
/**
|
|
75
|
+
* Stop polling for multiview data
|
|
76
|
+
*/
|
|
77
|
+
stopPolling(): void;
|
|
78
|
+
/**
|
|
79
|
+
* Refresh polling for curated multiviews
|
|
80
|
+
*/
|
|
81
|
+
refreshPolling(): void;
|
|
82
|
+
processCuratedMultiviewData(data: CuratedMultiviewResponse): void;
|
|
83
|
+
clearTabLoadFailure(): Promise<void>;
|
|
84
|
+
}
|