@times-components/ts-components 1.146.2-784617dc4a33959b8795da1d7f425c9929322fae.24 → 1.146.2-e5795a0ef59e2adb61ba52aeb7332fda4405cb7a.4

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 (73) hide show
  1. package/dist/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.d.ts +10 -0
  2. package/dist/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.js +69 -0
  3. package/dist/components/opta/football/opta-match-stats/matchday-live/MobileWidget.d.ts +12 -0
  4. package/dist/components/opta/football/opta-match-stats/matchday-live/MobileWidget.js +90 -0
  5. package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.d.ts +12 -0
  6. package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.js +10 -0
  7. package/dist/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.js +24 -0
  8. package/dist/components/opta/football/opta-match-stats/matchday-live/__tests__/MobileWidget.test.js +57 -0
  9. package/dist/components/opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.d.ts +2 -0
  10. package/dist/components/opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.js +48 -0
  11. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.d.ts +1 -0
  12. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.js +19 -0
  13. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.d.ts +12 -0
  14. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.js +67 -0
  15. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.d.ts +6 -0
  16. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.js +736 -0
  17. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/NavigationWrapper.test.d.ts +1 -0
  18. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/NavigationWrapper.test.js +33 -0
  19. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/WidgetContainer.test.d.ts +1 -0
  20. package/dist/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/WidgetContainer.test.js +36 -0
  21. package/dist/components/opta/football/opta-match-stats/shared/styles.js +8 -1
  22. package/dist/components/opta/football/opta-match-stats/summary/OptaMatchStatsSummary.js +2 -2
  23. package/dist/components/opta/football/opta-match-stats/summary/OptaMatchStatsSummary.stories.js +1 -1
  24. package/dist/components/opta/football/opta-match-stats/summary/WidgetContainer.js +19 -5
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.js +2 -2
  27. package/package.json +3 -3
  28. package/rnw.js +1 -1
  29. package/src/components/opta/football/opta-match-stats/commentary/__tests__/__snapshots__/OptaMatchStatsCommentary.test.tsx.snap +1 -1
  30. package/src/components/opta/football/opta-match-stats/matchday-live/DesktopWidget.tsx +108 -0
  31. package/src/components/opta/football/opta-match-stats/matchday-live/MobileWidget.tsx +158 -0
  32. package/src/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.tsx +38 -0
  33. package/src/components/opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.tsx +23 -0
  34. package/src/components/opta/football/opta-match-stats/matchday-live/__tests__/MobileWidget.test.tsx +69 -0
  35. package/src/components/opta/football/opta-match-stats/matchday-live/__tests__/OptaMatchStatsMatchdayLive.test.tsx +61 -0
  36. package/src/components/opta/football/opta-match-stats/matchday-live/__tests__/__snapshots__/OptaMatchStatsMatchdayLive.test.tsx.snap +61 -0
  37. package/src/components/opta/football/opta-match-stats/matchday-live/styles/MatchdayLiveController.tsx +19 -0
  38. package/src/components/opta/football/opta-match-stats/matchday-live/styles/NavigationWrapper.tsx +81 -0
  39. package/src/components/opta/football/opta-match-stats/matchday-live/styles/WidgetContainer.tsx +767 -0
  40. package/src/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/NavigationWrapper.test.tsx +67 -0
  41. package/src/components/opta/football/opta-match-stats/matchday-live/styles/__tests__/WidgetContainer.test.tsx +64 -0
  42. package/src/components/opta/football/opta-match-stats/shared/styles.ts +8 -0
  43. package/src/components/opta/football/opta-match-stats/stats-graphs/__tests__/__snapshots__/OptaMatchStatsGraphs.test.tsx.snap +1 -1
  44. package/src/components/opta/football/opta-match-stats/summary/OptaMatchStatsSummary.stories.tsx +1 -1
  45. package/src/components/opta/football/opta-match-stats/summary/OptaMatchStatsSummary.tsx +1 -1
  46. package/src/components/opta/football/opta-match-stats/summary/WidgetContainer.tsx +18 -4
  47. package/src/components/opta/football/opta-match-stats/summary/__tests__/__snapshots__/OptaMatchStatsSummary.test.tsx.snap +1 -1
  48. package/src/index.ts +3 -1
  49. package/dist/components/travel-mini-cta/__tests__/index.test.js +0 -262
  50. package/dist/components/travel-mini-cta/index.d.ts +0 -10
  51. package/dist/components/travel-mini-cta/index.js +0 -93
  52. package/dist/components/travel-mini-cta/styles.d.ts +0 -42
  53. package/dist/components/travel-mini-cta/styles.js +0 -268
  54. package/dist/components/travel-mini-cta/travel-mini-cta.stories.js +0 -8
  55. package/dist/components/travel-mini-cta/types.d.ts +0 -10
  56. package/dist/components/travel-mini-cta/types.js +0 -2
  57. package/dist/utils/applyDarkMode.d.ts +0 -1
  58. package/dist/utils/applyDarkMode.js +0 -12
  59. package/dist/utils/getMediaQuery.d.ts +0 -11
  60. package/dist/utils/getMediaQuery.js +0 -19
  61. package/dist/utils/index.d.ts +0 -2
  62. package/dist/utils/index.js +0 -3
  63. package/src/components/travel-mini-cta/__tests__/__snapshots__/index.test.tsx.snap +0 -211
  64. package/src/components/travel-mini-cta/__tests__/index.test.tsx +0 -330
  65. package/src/components/travel-mini-cta/index.tsx +0 -190
  66. package/src/components/travel-mini-cta/styles.ts +0 -331
  67. package/src/components/travel-mini-cta/travel-mini-cta.stories.tsx +0 -23
  68. package/src/components/travel-mini-cta/types.ts +0 -10
  69. package/src/utils/applyDarkMode.ts +0 -12
  70. package/src/utils/getMediaQuery.ts +0 -25
  71. package/src/utils/index.ts +0 -2
  72. /package/dist/components/{travel-mini-cta/travel-mini-cta.stories.d.ts → opta/football/opta-match-stats/matchday-live/OptaMatchStatsMatchdayLive.stories.d.ts} +0 -0
  73. /package/dist/components/{travel-mini-cta/__tests__/index.test.d.ts → opta/football/opta-match-stats/matchday-live/__tests__/MobileWidget.test.d.ts} +0 -0
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { TeamColor } from '../shared/types';
3
+ export declare const DesktopWidget: React.FC<{
4
+ season: string;
5
+ competition: string;
6
+ match: string;
7
+ isApp?: boolean;
8
+ homeTeamColor?: TeamColor;
9
+ awayTeamColor?: TeamColor;
10
+ }>;
@@ -0,0 +1,69 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { Placeholder } from '@times-components/image';
3
+ import { initSettings, initStyleSheet, initScript, initElement, initComponent } from '../../../utils/config';
4
+ import { PlaceholderContainer } from '../../../shared/shared-styles';
5
+ import { WidgetContainer } from './styles/WidgetContainer';
6
+ import { WidgetWrapper } from '../shared/styles';
7
+ export const DesktopWidget = React.memo(({ season, competition, match, isApp = false, homeTeamColor = { light: '#000000', dark: '#a19c9cff' }, awayTeamColor = { light: '#007A3F', dark: '#007A3F' } }) => {
8
+ const ref = React.createRef();
9
+ const [isReady, setIsReady] = useState(false);
10
+ useEffect(() => {
11
+ const sport = 'football';
12
+ initSettings();
13
+ initStyleSheet(sport);
14
+ initScript()
15
+ .then(() => {
16
+ if (ref.current) {
17
+ ref.current.innerHTML = initElement('opta-widget', {
18
+ sport,
19
+ widget: 'matchday_live',
20
+ season,
21
+ competition,
22
+ match,
23
+ template: 'normal',
24
+ live: true,
25
+ orientation: 'horizontal',
26
+ side: 'both',
27
+ show_match_header: true,
28
+ show_crests: true,
29
+ show_pitch_crests: false,
30
+ show_team_formation: true,
31
+ show_score: false,
32
+ show_halftime_score: false,
33
+ show_competition_name: false,
34
+ show_date: false,
35
+ date_format: 'dddd D MMMM YYYY',
36
+ narrow_date_format: 'DD/MM/YY',
37
+ show_referee: true,
38
+ show_venue: true,
39
+ show_attendance: true,
40
+ show_images: false,
41
+ show_pitch_images: false,
42
+ show_team_sheets: false,
43
+ show_event_icons: true,
44
+ show_player_names: true,
45
+ show_player_stats: true,
46
+ show_subs: 'all',
47
+ competition_naming: 'brief',
48
+ team_naming: 'full',
49
+ player_naming: 'last_name',
50
+ show_live: false,
51
+ show_logo: false,
52
+ show_title: false,
53
+ breakpoints: '400, 700'
54
+ }).outerHTML;
55
+ initComponent();
56
+ }
57
+ })
58
+ .then(() => {
59
+ setIsReady(true);
60
+ });
61
+ }, []);
62
+ return (React.createElement(React.Fragment, null,
63
+ React.createElement(WidgetWrapper, { isApp: isApp, className: "matchday-live-widget-desktop" },
64
+ React.createElement("h3", null, "Line-ups"),
65
+ React.createElement(WidgetContainer, { ref: ref, isApp: isApp, homeTeamColor: homeTeamColor, awayTeamColor: awayTeamColor })),
66
+ !isReady && (React.createElement(PlaceholderContainer, { "data-testid": "placeholder" },
67
+ React.createElement(Placeholder, null)))));
68
+ });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVza3RvcFdpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL29wdGEvZm9vdGJhbGwvb3B0YS1tYXRjaC1zdGF0cy9tYXRjaGRheS1saXZlL0Rlc2t0b3BXaWRnZXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUNMLFlBQVksRUFDWixjQUFjLEVBQ2QsVUFBVSxFQUNWLFdBQVcsRUFDWCxhQUFhLEVBQ2QsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2pELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FPckIsS0FBSyxDQUFDLElBQUksQ0FDYixDQUFDLEVBQ0MsTUFBTSxFQUNOLFdBQVcsRUFDWCxLQUFLLEVBQ0wsS0FBSyxHQUFHLEtBQUssRUFDYixhQUFhLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsRUFDdkQsYUFBYSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQ3RELEVBQUUsRUFBRTtJQUNILE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLEVBQWtCLENBQUM7SUFDOUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsR0FBRyxRQUFRLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFdkQsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQztRQUV6QixZQUFZLEVBQUUsQ0FBQztRQUNmLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixVQUFVLEVBQUU7YUFDVCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1QsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO2dCQUNmLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxhQUFhLEVBQUU7b0JBQ2pELEtBQUs7b0JBQ0wsTUFBTSxFQUFFLGVBQWU7b0JBQ3ZCLE1BQU07b0JBQ04sV0FBVztvQkFDWCxLQUFLO29CQUNMLFFBQVEsRUFBRSxRQUFRO29CQUNsQixJQUFJLEVBQUUsSUFBSTtvQkFDVixXQUFXLEVBQUUsWUFBWTtvQkFDekIsSUFBSSxFQUFFLE1BQU07b0JBQ1osaUJBQWlCLEVBQUUsSUFBSTtvQkFDdkIsV0FBVyxFQUFFLElBQUk7b0JBQ2pCLGlCQUFpQixFQUFFLEtBQUs7b0JBQ3hCLG1CQUFtQixFQUFFLElBQUk7b0JBQ3pCLFVBQVUsRUFBRSxLQUFLO29CQUNqQixtQkFBbUIsRUFBRSxLQUFLO29CQUMxQixxQkFBcUIsRUFBRSxLQUFLO29CQUM1QixTQUFTLEVBQUUsS0FBSztvQkFDaEIsV0FBVyxFQUFFLGtCQUFrQjtvQkFDL0Isa0JBQWtCLEVBQUUsVUFBVTtvQkFDOUIsWUFBWSxFQUFFLElBQUk7b0JBQ2xCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsSUFBSTtvQkFDckIsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLGlCQUFpQixFQUFFLEtBQUs7b0JBQ3hCLGdCQUFnQixFQUFFLEtBQUs7b0JBQ3ZCLGdCQUFnQixFQUFFLElBQUk7b0JBQ3RCLGlCQUFpQixFQUFFLElBQUk7b0JBQ3ZCLGlCQUFpQixFQUFFLElBQUk7b0JBQ3ZCLFNBQVMsRUFBRSxLQUFLO29CQUNoQixrQkFBa0IsRUFBRSxPQUFPO29CQUMzQixXQUFXLEVBQUUsTUFBTTtvQkFDbkIsYUFBYSxFQUFFLFdBQVc7b0JBQzFCLFNBQVMsRUFBRSxLQUFLO29CQUNoQixTQUFTLEVBQUUsS0FBSztvQkFDaEIsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLFdBQVcsRUFBRSxVQUFVO2lCQUN4QixDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUViLGFBQWEsRUFBRSxDQUFDO2FBQ2pCO1FBQ0gsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVQLE9BQU8sQ0FDTDtRQUNFLG9CQUFDLGFBQWEsSUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQyw4QkFBOEI7WUFDbkUsMkNBQWlCO1lBQ2pCLG9CQUFDLGVBQWUsSUFDZCxHQUFHLEVBQUUsR0FBRyxFQUNSLEtBQUssRUFBRSxLQUFLLEVBQ1osYUFBYSxFQUFFLGFBQWEsRUFDNUIsYUFBYSxFQUFFLGFBQWEsR0FDNUIsQ0FDWTtRQUNmLENBQUMsT0FBTyxJQUFJLENBQ1gsb0JBQUMsb0JBQW9CLG1CQUFhLGFBQWE7WUFDN0Msb0JBQUMsV0FBVyxPQUFHLENBQ00sQ0FDeEIsQ0FDQSxDQUNKLENBQUM7QUFDSixDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { TeamColor } from '../shared/types';
3
+ export declare const MobileWidget: React.FC<{
4
+ season: string;
5
+ competition: string;
6
+ match: string;
7
+ isApp?: boolean;
8
+ homeTeamColor?: TeamColor;
9
+ awayTeamColor?: TeamColor;
10
+ homeTeamName: string;
11
+ awayTeamName: string;
12
+ }>;
@@ -0,0 +1,90 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { Placeholder } from '@times-components/image';
3
+ import { initSettings, initStyleSheet, initScript, initElement, initComponent } from '../../../utils/config';
4
+ import { PlaceholderContainer } from '../../../shared/shared-styles';
5
+ import { NavigationWrapper } from './styles/NavigationWrapper';
6
+ import { WidgetContainer } from './styles/WidgetContainer';
7
+ const widgetOptions = {
8
+ widget: 'matchday_live',
9
+ template: 'normal',
10
+ live: true,
11
+ orientation: 'vertical',
12
+ show_match_header: true,
13
+ show_crests: false,
14
+ show_pitch_crests: false,
15
+ show_team_formation: true,
16
+ show_score: false,
17
+ show_halftime_score: false,
18
+ show_competition_name: false,
19
+ show_date: false,
20
+ date_format: 'dddd D MMMM YYYY',
21
+ narrow_date_format: 'DD/MM/YY',
22
+ show_referee: true,
23
+ show_venue: false,
24
+ show_attendance: false,
25
+ show_images: false,
26
+ show_pitch_images: false,
27
+ show_team_sheets: false,
28
+ show_event_icons: true,
29
+ show_player_names: true,
30
+ show_player_stats: true,
31
+ show_subs: 'all',
32
+ competition_naming: 'brief',
33
+ team_naming: 'full',
34
+ player_naming: 'last_name',
35
+ show_live: false,
36
+ show_logo: false,
37
+ show_title: false
38
+ };
39
+ export const MobileWidget = React.memo(({ season, competition, match, isApp = false, homeTeamColor = { light: '#000000', dark: '#a19c9cff' }, awayTeamColor = { light: '#007A3F', dark: '#007A3F' }, homeTeamName, awayTeamName }) => {
40
+ const homeRef = React.createRef();
41
+ const awayRef = React.createRef();
42
+ const [isReady, setIsReady] = useState(false);
43
+ const [activeTeam, setActiveTeam] = useState('home');
44
+ useEffect(() => {
45
+ const sport = 'football';
46
+ initSettings();
47
+ initStyleSheet(sport);
48
+ initScript()
49
+ .then(() => {
50
+ if (homeRef.current) {
51
+ homeRef.current.innerHTML = initElement('opta-widget', {
52
+ ...widgetOptions,
53
+ sport,
54
+ season,
55
+ competition,
56
+ match,
57
+ side: 'home'
58
+ }).outerHTML;
59
+ initComponent();
60
+ }
61
+ })
62
+ .then(() => {
63
+ if (awayRef.current) {
64
+ awayRef.current.innerHTML = initElement('opta-widget', {
65
+ ...widgetOptions,
66
+ sport,
67
+ season,
68
+ competition,
69
+ match,
70
+ side: 'away'
71
+ }).outerHTML;
72
+ initComponent();
73
+ }
74
+ })
75
+ .finally(() => {
76
+ setIsReady(true);
77
+ });
78
+ }, []);
79
+ return (React.createElement(React.Fragment, null,
80
+ React.createElement("div", { className: "matchday-live-widget-mobile" },
81
+ React.createElement(NavigationWrapper, { "data-testid": "mobile-navigation-wrapper", activeTeam: activeTeam, homeTeamColor: homeTeamColor, awayTeamColor: awayTeamColor, isApp: isApp },
82
+ React.createElement("div", { className: "navigation-buttons" },
83
+ React.createElement("button", { className: activeTeam === 'home' ? 'active home' : 'home', onClick: () => setActiveTeam('home') }, homeTeamName),
84
+ React.createElement("button", { className: activeTeam === 'away' ? 'active away' : 'away', onClick: () => setActiveTeam('away') }, awayTeamName)),
85
+ React.createElement(WidgetContainer, { className: "home-widget-container", ref: homeRef, isApp: isApp, homeTeamColor: homeTeamColor, awayTeamColor: awayTeamColor }),
86
+ React.createElement(WidgetContainer, { className: "away-widget-container", ref: awayRef, isApp: isApp, homeTeamColor: homeTeamColor, awayTeamColor: awayTeamColor }),
87
+ !isReady && (React.createElement(PlaceholderContainer, { "data-testid": "placeholder" },
88
+ React.createElement(Placeholder, null)))))));
89
+ });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9iaWxlV2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvb3B0YS9mb290YmFsbC9vcHRhLW1hdGNoLXN0YXRzL21hdGNoZGF5LWxpdmUvTW9iaWxlV2lkZ2V0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFDTCxZQUFZLEVBQ1osY0FBYyxFQUNkLFVBQVUsRUFDVixXQUFXLEVBQ1gsYUFBYSxFQUNkLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE1BQU0sYUFBYSxHQUFHO0lBQ3BCLE1BQU0sRUFBRSxlQUFlO0lBQ3ZCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLElBQUksRUFBRSxJQUFJO0lBQ1YsV0FBVyxFQUFFLFVBQVU7SUFDdkIsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixXQUFXLEVBQUUsS0FBSztJQUNsQixpQkFBaUIsRUFBRSxLQUFLO0lBQ3hCLG1CQUFtQixFQUFFLElBQUk7SUFDekIsVUFBVSxFQUFFLEtBQUs7SUFDakIsbUJBQW1CLEVBQUUsS0FBSztJQUMxQixxQkFBcUIsRUFBRSxLQUFLO0lBQzVCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFdBQVcsRUFBRSxrQkFBa0I7SUFDL0Isa0JBQWtCLEVBQUUsVUFBVTtJQUM5QixZQUFZLEVBQUUsSUFBSTtJQUNsQixVQUFVLEVBQUUsS0FBSztJQUNqQixlQUFlLEVBQUUsS0FBSztJQUN0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
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { TeamColor } from '../shared/types';
3
+ export declare const OptaMatchStatsMatchdayLive: React.FC<{
4
+ season: string;
5
+ competition: string;
6
+ match: string;
7
+ isApp?: boolean;
8
+ homeTeamColor?: TeamColor;
9
+ awayTeamColor?: TeamColor;
10
+ homeTeamName: string;
11
+ awayTeamName: string;
12
+ }>;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { DesktopWidget } from './DesktopWidget';
3
+ import { MobileWidget } from './MobileWidget';
4
+ import { MatchdayLiveController } from './styles/MatchdayLiveController';
5
+ export const OptaMatchStatsMatchdayLive = React.memo(props => {
6
+ return (React.createElement(MatchdayLiveController, null,
7
+ React.createElement(DesktopWidget, Object.assign({}, props)),
8
+ React.createElement(MobileWidget, Object.assign({}, props))));
9
+ });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0YU1hdGNoU3RhdHNNYXRjaGRheUxpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9vcHRhL2Zvb3RiYWxsL29wdGEtbWF0Y2gtc3RhdHMvbWF0Y2hkYXktbGl2ZS9PcHRhTWF0Y2hTdGF0c01hdGNoZGF5TGl2ZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBU2xDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7SUFDdEIsT0FBTyxDQUNMLG9CQUFDLHNCQUFzQjtRQUNyQixvQkFBQyxhQUFhLG9CQUFLLEtBQUssRUFBSTtRQUM1QixvQkFBQyxZQUFZLG9CQUFLLEtBQUssRUFBSSxDQUNKLENBQzFCLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQyJ9
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { showcaseConverter } from '@times-components/storybook';
3
+ import { ArticleHarness } from '../../../../../fixtures/article-harness/ArticleHarness';
4
+ import { OptaMatchStatsMatchdayLive } from './OptaMatchStatsMatchdayLive';
5
+ const showcase = {
6
+ children: [
7
+ {
8
+ decorator: (storyFn) => (React.createElement(ArticleHarness, null, storyFn())),
9
+ type: 'decorator'
10
+ },
11
+ {
12
+ component: () => {
13
+ return (React.createElement(React.Fragment, null,
14
+ React.createElement(OptaMatchStatsMatchdayLive, { season: "2025", competition: "8", match: "2562026", homeTeamName: "Arsenal", awayTeamName: "Brentford" })));
15
+ },
16
+ name: 'Summary',
17
+ type: 'story'
18
+ }
19
+ ],
20
+ name: 'Typescript Component/Opta Match Stats/Football/Match Stats Matchday Live'
21
+ };
22
+ // @ts-ignore
23
+ showcaseConverter(module, showcase);
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0YU1hdGNoU3RhdHNNYXRjaGRheUxpdmUuc3Rvcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL29wdGEvZm9vdGJhbGwvb3B0YS1tYXRjaC1zdGF0cy9tYXRjaGRheS1saXZlL09wdGFNYXRjaFN0YXRzTWF0Y2hkYXlMaXZlLnN0b3JpZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDeEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFMUUsTUFBTSxRQUFRLEdBQUc7SUFDZixRQUFRLEVBQUU7UUFDUjtZQUNFLFNBQVMsRUFBRSxDQUFDLE9BQThCLEVBQUUsRUFBRSxDQUFDLENBQzdDLG9CQUFDLGNBQWMsUUFBRSxPQUFPLEVBQUUsQ0FBa0IsQ0FDN0M7WUFDRCxJQUFJLEVBQUUsV0FBVztTQUNsQjtRQUNEO1lBQ0UsU0FBUyxFQUFFLEdBQUcsRUFBRTtnQkFDZCxPQUFPLENBQ0w7b0JBQ0Usb0JBQUMsMEJBQTBCLElBQ3pCLE1BQU0sRUFBQyxNQUFNLEVBQ2IsV0FBVyxFQUFDLEdBQUcsRUFDZixLQUFLLEVBQUMsU0FBUyxFQUNmLFlBQVksRUFBQyxTQUFTLEVBQ3RCLFlBQVksRUFBQyxXQUFXLEdBQ3hCLENBQ0QsQ0FDSixDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksRUFBRSxTQUFTO1lBQ2YsSUFBSSxFQUFFLE9BQU87U0FDZDtLQUNGO0lBQ0QsSUFBSSxFQUNGLDBFQUEwRTtDQUM3RSxDQUFDO0FBRUYsYUFBYTtBQUNiLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyJ9
@@ -0,0 +1,57 @@
1
+ import React from 'react';
2
+ import { render, screen, fireEvent, act } from '@testing-library/react';
3
+ import '@testing-library/jest-dom';
4
+ jest.mock('@times-components/image', () => ({
5
+ Placeholder: () => React.createElement(React.Fragment, null, "Placeholder")
6
+ }));
7
+ const mockInitSettings = jest.fn();
8
+ const mockInitStyleSheet = jest.fn();
9
+ const mockInitComponent = jest.fn();
10
+ const mockInitElement = () => {
11
+ const element = document.createElement('div');
12
+ element.appendChild(document.createTextNode('Widget'));
13
+ return element;
14
+ };
15
+ jest.mock('../../../../utils/config', () => ({
16
+ initSettings: mockInitSettings,
17
+ initStyleSheet: mockInitStyleSheet,
18
+ initScript: () => Promise.resolve({}),
19
+ initElement: mockInitElement,
20
+ initComponent: mockInitComponent
21
+ }));
22
+ import { MobileWidget } from '../MobileWidget';
23
+ const requiredProps = {
24
+ season: '2020',
25
+ competition: '3',
26
+ match: '2041900',
27
+ homeTeamName: 'Liverpool',
28
+ awayTeamName: 'Manchester City'
29
+ };
30
+ describe('MobileWidget navigation buttons state', () => {
31
+ beforeEach(() => {
32
+ jest.clearAllMocks();
33
+ });
34
+ it('renders with home active and toggles to away on click', async () => {
35
+ render(React.createElement(MobileWidget, Object.assign({}, requiredProps)));
36
+ const homeBtn = screen.getByRole('button', { name: 'Liverpool' });
37
+ const awayBtn = screen.getByRole('button', { name: 'Manchester City' });
38
+ expect(homeBtn).toHaveClass('home');
39
+ expect(homeBtn).toHaveClass('active');
40
+ expect(awayBtn).toHaveClass('away');
41
+ expect(awayBtn).not.toHaveClass('active');
42
+ fireEvent.click(awayBtn);
43
+ expect(awayBtn).toHaveClass('active');
44
+ expect(homeBtn).not.toHaveClass('active');
45
+ expect(homeBtn).toHaveClass('home');
46
+ await act(async () => {
47
+ await Promise.resolve();
48
+ });
49
+ // Placeholder may still be present during async; assert wrapper exists
50
+ expect(screen.getByTestId('mobile-navigation-wrapper')).toBeInTheDocument();
51
+ fireEvent.click(homeBtn);
52
+ expect(homeBtn).toHaveClass('active');
53
+ expect(awayBtn).not.toHaveClass('active');
54
+ expect(awayBtn).toHaveClass('away');
55
+ });
56
+ });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9iaWxlV2lkZ2V0LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9vcHRhL2Zvb3RiYWxsL29wdGEtbWF0Y2gtc3RhdHMvbWF0Y2hkYXktbGl2ZS9fX3Rlc3RzX18vTW9iaWxlV2lkZ2V0LnRlc3QudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEUsT0FBTywyQkFBMkIsQ0FBQztBQUVuQyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDMUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLHdEQUFnQjtDQUNwQyxDQUFDLENBQUMsQ0FBQztBQUVKLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQ25DLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQ3JDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBRXBDLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRTtJQUMzQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMzQyxZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLGNBQWMsRUFBRSxrQkFBa0I7SUFDbEMsVUFBVSxF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
@@ -0,0 +1,2 @@
1
+ import 'regenerator-runtime';
2
+ import '@testing-library/jest-dom';
@@ -0,0 +1,48 @@
1
+ import React from 'react';
2
+ import { render, act } from '@testing-library/react';
3
+ import 'regenerator-runtime';
4
+ import '@testing-library/jest-dom';
5
+ jest.mock('@times-components/image', () => ({
6
+ Placeholder: () => React.createElement(React.Fragment, null, "Placeholder")
7
+ }));
8
+ const mockInitSettings = jest.fn();
9
+ const mockInitStyleSheet = jest.fn();
10
+ const mockInitComponent = jest.fn();
11
+ const mockHasMatchEvents = jest.fn();
12
+ const mockInitElement = () => {
13
+ const element = document.createElement('div');
14
+ element.appendChild(document.createTextNode('Widget'));
15
+ return element;
16
+ };
17
+ jest.mock('../../../../utils/config', () => ({
18
+ initSettings: mockInitSettings,
19
+ initStyleSheet: mockInitStyleSheet,
20
+ initScript: () => new Promise(resolve => resolve({})),
21
+ initElement: mockInitElement,
22
+ initComponent: mockInitComponent
23
+ }));
24
+ import { OptaMatchStatsMatchdayLive } from '../OptaMatchStatsMatchdayLive';
25
+ const requiredProps = {
26
+ season: '2020',
27
+ competition: '3',
28
+ match: '2041900',
29
+ homeTeamName: 'Liverpool',
30
+ awayTeamName: 'Manchester City'
31
+ };
32
+ describe('OptaMatchStatsMatchdayLive', () => {
33
+ beforeEach(() => {
34
+ jest.clearAllMocks();
35
+ });
36
+ it('should render correctly', async () => {
37
+ const { asFragment } = render(React.createElement(OptaMatchStatsMatchdayLive, Object.assign({}, requiredProps)));
38
+ act(() => {
39
+ mockInitComponent();
40
+ mockHasMatchEvents();
41
+ });
42
+ expect(mockInitSettings).toHaveBeenCalledTimes(2);
43
+ expect(mockInitStyleSheet).toHaveBeenCalledTimes(2);
44
+ expect(mockInitComponent).toHaveBeenCalledTimes(1);
45
+ expect(asFragment()).toMatchSnapshot();
46
+ });
47
+ });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0YU1hdGNoU3RhdHNNYXRjaGRheUxpdmUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL29wdGEvZm9vdGJhbGwvb3B0YS1tYXRjaC1zdGF0cy9tYXRjaGRheS1saXZlL19fdGVzdHNfXy9PcHRhTWF0Y2hTdGF0c01hdGNoZGF5TGl2ZS50ZXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sMkJBQTJCLENBQUM7QUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyx3REFBZ0I7Q0FDcEMsQ0FBQyxDQUFDLENBQUM7QUFFSixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUNuQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUNyQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUNwQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUVyQyxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7SUFDM0IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN2RCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDM0MsWUFBWSxFQUFFLGdCQUFnQjtJQUM5QixjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxXQUFXLEVBQUUsZUFBZTtJQUM1QixhQUFhLEVBQUUsaUJBQWlCO0NBQ2pDLENBQUMsQ0FBQyxDQUFDO0FBRUosT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0UsTUFBTSxhQUFhLEdBQUc7SUFDcEIsTUFBTSxFQUFFLE1BQU07SUFDZCxXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEVBQUUsU0FBUztJQUNoQixZQUFZLEVBQUUsV0FBVztJQUN6QixZQUFZLEVBQUUsaUJBQWlCO0NBQ2hDLENBQUM7QUFFRixRQUFRLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO0lBQzFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMseUJBQXlCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDdkMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FDM0Isb0JBQUMsMEJBQTBCLG9CQUFLLGFBQWEsRUFBSSxDQUNsRCxDQUFDO1FBRUYsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLGlCQUFpQixFQUFFLENBQUM7WUFDcEIsa0JBQWtCLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRW5ELE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
@@ -0,0 +1 @@
1
+ export declare const MatchdayLiveController: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1,19 @@
1
+ import styled from 'styled-components';
2
+ import { breakpoints } from '@times-components/ts-styleguide';
3
+ export const MatchdayLiveController = styled.div `
4
+ .matchday-live-widget-mobile {
5
+ display: block;
6
+ }
7
+ .matchday-live-widget-desktop {
8
+ display: none;
9
+ }
10
+ @media (min-width: ${breakpoints.medium}px) {
11
+ .matchday-live-widget-mobile {
12
+ display: none;
13
+ }
14
+ .matchday-live-widget-desktop {
15
+ display: block;
16
+ }
17
+ }
18
+ `;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0Y2hkYXlMaXZlQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL29wdGEvZm9vdGJhbGwvb3B0YS1tYXRjaC1zdGF0cy9tYXRjaGRheS1saXZlL3N0eWxlcy9NYXRjaGRheUxpdmVDb250cm9sbGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQTs7Ozs7Ozt1QkFPekIsV0FBVyxDQUFDLE1BQU07Ozs7Ozs7O0NBUXhDLENBQUMifQ==
@@ -0,0 +1,12 @@
1
+ export declare const NavigationWrapper: import("styled-components").StyledComponent<"div", any, {
2
+ homeTeamColor: {
3
+ light: string;
4
+ dark: string;
5
+ };
6
+ awayTeamColor: {
7
+ light: string;
8
+ dark: string;
9
+ };
10
+ activeTeam: 'home' | 'away';
11
+ isApp: boolean;
12
+ }, never>;
@@ -0,0 +1,67 @@
1
+ import styled from 'styled-components';
2
+ import { backgroundColor, darkBackgroundColor, darkTextColor, textColor } from '../../shared/styles';
3
+ export const NavigationWrapper = styled.div `
4
+ background-color: ${backgroundColor};
5
+ ${props => props.isApp &&
6
+ `
7
+ @media (prefers-color-scheme: dark) {
8
+ background-color: ${darkBackgroundColor};
9
+ }
10
+ `} .navigation-buttons {
11
+ display: grid;
12
+ grid-template-columns: 1fr 1fr;
13
+ button {
14
+ -webkit-tap-highlight-color: transparent;
15
+ background: none;
16
+ border: none;
17
+ font-family: Roboto, sans-serif;
18
+ font-size: 16px;
19
+ font-weight: 500;
20
+ line-height: 150%;
21
+ padding: 16px 8px;
22
+ cursor: pointer;
23
+ border-bottom: 2px solid ${backgroundColor};
24
+ color: ${textColor};
25
+
26
+ &.active {
27
+ &.home {
28
+ border-bottom: 2px solid ${props => props.homeTeamColor.light};
29
+ color: ${props => props.homeTeamColor.light};
30
+ }
31
+ &.away {
32
+ border-bottom: 2px solid ${props => props.awayTeamColor.light};
33
+ color: ${props => props.awayTeamColor.light};
34
+ }
35
+ }
36
+
37
+ ${props => props.isApp &&
38
+ `
39
+ @media (prefers-color-scheme: dark) {
40
+ border-bottom: 2px solid ${darkBackgroundColor};
41
+ color: ${darkTextColor};
42
+ &.active {
43
+ &.home {
44
+ border-bottom: 2px solid ${props.homeTeamColor.dark};
45
+ color: ${props.homeTeamColor.dark};
46
+ }
47
+ &.away {
48
+ border-bottom: 2px solid ${props.awayTeamColor.dark};
49
+ color: ${props.awayTeamColor.dark};
50
+ }
51
+ }
52
+ }
53
+ `};
54
+ }
55
+ }
56
+
57
+ .home-widget-container {
58
+ visibility: ${props => props.activeTeam === 'home' ? 'visible' : 'hidden'};
59
+ height: ${props => (props.activeTeam === 'home' ? 'auto' : '0')};
60
+ }
61
+
62
+ .away-widget-container {
63
+ visibility: ${props => props.activeTeam === 'away' ? 'visible' : 'hidden'};
64
+ height: ${props => (props.activeTeam === 'away' ? 'auto' : '0')};
65
+ }
66
+ `;
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmF2aWdhdGlvbldyYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9vcHRhL2Zvb3RiYWxsL29wdGEtbWF0Y2gtc3RhdHMvbWF0Y2hkYXktbGl2ZS9zdHlsZXMvTmF2aWdhdGlvbldyYXBwZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixTQUFTLEVBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUt6QztzQkFDb0IsZUFBZTtJQUNqQyxLQUFLLENBQUMsRUFBRSxDQUNSLEtBQUssQ0FBQyxLQUFLO0lBQ1g7OzRCQUV3QixtQkFBbUI7O0tBRTFDOzs7Ozs7Ozs7Ozs7O2lDQWE0QixlQUFlO2VBQ2pDLFNBQVM7Ozs7cUNBSWEsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUs7bUJBQ3BELEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLOzs7cUNBR2hCLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLO21CQUNwRCxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSzs7OztRQUk3QyxLQUFLLENBQUMsRUFBRSxDQUNSLEtBQUssQ0FBQyxLQUFLO0lBQ1g7O3VDQUUrQixtQkFBbUI7cUJBQ3JDLGFBQWE7OzsyQ0FHUyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUk7eUJBQzFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSTs7OzJDQUdOLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSTt5QkFDMUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJOzs7O1NBSXhDOzs7OztrQkFLUyxLQUFLLENBQUMsRUFBRSxDQUNwQixLQUFLLENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRO2NBQzFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Ozs7a0JBSWpELEtBQUssQ0FBQyxFQUFFLENBQ3BCLEtBQUssQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVE7Y0FDMUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQzs7Q0FFbEUsQ0FBQyJ9
@@ -0,0 +1,6 @@
1
+ import { TeamColor } from '../../shared/types';
2
+ export declare const WidgetContainer: import("styled-components").StyledComponent<"div", any, {
3
+ isApp: boolean;
4
+ homeTeamColor: TeamColor;
5
+ awayTeamColor: TeamColor;
6
+ }, never>;