@times-components/ts-components 1.190.0 → 1.190.1-27065cede92918409da2e626e718135bdd6f78dc.2

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.
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Placeholder } from '@times-components/image';
3
3
  import { MomentumWrapper, ChartContainer, EventIconWrapper } from './styles';
4
- import { mapFeedToMomentumData } from './utils';
4
+ import { mapFeedToMomentumData, computeSectionWidths, computeBarWidths, computeToX, clampCurrentX } from './utils';
5
5
  import { CHART, COLORS, FOOTBALL_ICON_PATH, FOOTBALL_ICON_SIZE, CARD } from './chart-config';
6
6
  import { GoalGradientDefs, MomentumBar, GoalFadeBeam, CardFadeBeam, HalfTimeMarker, CurrentMinuteMarker } from './chart-components';
7
7
  import { useAdaptiveMatchFeed } from '../useAdaptiveMatchFeed';
@@ -65,87 +65,91 @@ export const OptaMatchStatsMomentum = React.memo(({ feed, match, apiBaseUrl, isA
65
65
  const isLive = (matchInfo && matchInfo.matchStatus) === 'Playing';
66
66
  const totalMatchMinutes = (graphSettings && graphSettings.totalMatchMinutes) || 90;
67
67
  const scaleValue = (value) => (value / maxValue) * CHART.usableHeight;
68
- // 50/50 split: left half = first half, right half = second half.
69
- // HT always sits at dead centre. Each side scales independently
70
- // based on its own data extent.
68
+ // Period markers and section configuration
71
69
  const htPoint = momentumData.find(p => p.period === 'HT');
72
70
  const htMinute = htPoint ? htPoint.min : undefined;
71
+ const ftPoint = momentumData.find(p => p.period === 'FT');
73
72
  const firstHalfLen = (graphSettings && graphSettings.firstHalfLength) || 45;
74
73
  const firstHalfMax = htMinute != null ? htMinute : firstHalfLen + 0.5;
75
74
  const secondHalfStart = (graphSettings && graphSettings.secondHalfStart) || firstHalfLen + 1;
76
- const periodLength = totalMatchMinutes / 2; // usually 45
77
75
  const currentHalf = graphSettings && graphSettings.currentHalf;
78
76
  const isHalfTime = graphSettings && graphSettings.isHalfTime;
79
- // First-half prediction bars (excluding events and HT marker).
77
+ const hasExtraTime = (graphSettings && graphSettings.hasExtraTime) || false;
78
+ const extraTimeStart = (graphSettings && graphSettings.extraTimeStart) || firstHalfLen * 2 + 1;
79
+ const extraTimeLength = (graphSettings && graphSettings.extraTimeLength) || 0;
80
+ const secondHalfLength = (graphSettings && graphSettings.secondHalfLength) || firstHalfLen;
81
+ // Compute proportional section widths
82
+ const sectionWidths = computeSectionWidths(CHART.width, firstHalfLen, secondHalfLength, hasExtraTime, extraTimeLength);
83
+ // Per-section prediction bars (excluding events and period markers)
80
84
  const firstHalfPreds = momentumData.filter(p => p.half === 1 && !p.type && !p.period);
85
+ const secondHalfPreds = momentumData.filter(p => p.half === 2 && !p.type && !p.period);
86
+ const extraTimePreds = momentumData.filter(p => p.half === 3 && !p.type && !p.period);
87
+ // Compute bar widths per section
88
+ const barWidths = computeBarWidths(sectionWidths, firstHalfPreds.length || 1, secondHalfPreds.length || 1, extraTimePreds.length || 1, CHART.barWidth, CHART.barGap);
89
+ const getBarWidth = (half) => half === 3
90
+ ? barWidths.extraTime
91
+ : half === 2
92
+ ? barWidths.secondHalf
93
+ : barWidths.firstHalf;
94
+ // Compute per-section ranges for positioning
81
95
  const firstHalfStartMin = firstHalfPreds.length > 0
82
96
  ? Math.min(...firstHalfPreds.map(p => p.min))
83
97
  : 1;
84
98
  const lastFirstHalfMin = firstHalfPreds.length > 0
85
99
  ? Math.max(...firstHalfPreds.map(p => p.min))
86
100
  : 1;
87
- // Live first half: range targets expected period length (45) so LL
88
- // reaches ~98% at minute 45. Stoppage time grows the range naturally.
89
- // HT / FT: shrink to last actual bar so bars fill to the HT margin.
101
+ const periodLength = hasExtraTime ? firstHalfLen : totalMatchMinutes / 2;
90
102
  const firstHalfEnd = isLive && currentHalf === 1 && !isHalfTime
91
103
  ? Math.max(lastFirstHalfMin, periodLength)
92
104
  : lastFirstHalfMin;
93
105
  const firstHalfExtent = firstHalfEnd - firstHalfStartMin;
94
106
  const firstHalfRange = firstHalfExtent * (isLive && currentHalf === 1 && !isHalfTime ? 1.02 : 1);
95
- // Second-half range: use actual data extent or the expected period length,
96
- // whichever is larger, so bars fill the right 50%.
97
- const secondHalfPreds = momentumData.filter(p => p.half === 2 && !p.type && !p.period);
98
107
  const lastSecHalfMin = secondHalfPreds.length > 0
99
108
  ? Math.max(...secondHalfPreds.map(p => p.min))
100
109
  : secondHalfStart;
101
110
  const secondHalfExtent = lastSecHalfMin - secondHalfStart;
102
- const secondHalfRange = Math.max(secondHalfExtent, periodLength) *
111
+ const secondHalfRange = Math.max(secondHalfExtent, secondHalfLength) *
103
112
  (isLive && currentHalf === 2 ? 1.02 : 1);
104
- const halfWidth = CHART.width / 2;
105
- // Dynamic bar width: shrink when a half has more bars to fit.
106
- // Capped at CHART.barWidth max.
107
- const firstHalfBarCount = firstHalfPreds.length || 1;
108
- const secondHalfBarCount = secondHalfPreds.length || 1;
109
- const firstHalfBarWidth = Math.max(2, Math.min(CHART.barWidth, halfWidth / firstHalfBarCount - CHART.barGap));
110
- const secondHalfBarWidth = Math.max(2, Math.min(CHART.barWidth, halfWidth / secondHalfBarCount - CHART.barGap));
111
- const getBarWidth = (half) => half === 2 ? secondHalfBarWidth : firstHalfBarWidth;
112
- const toX = (minute, half) => {
113
- if (!hasChartData) {
114
- return halfWidth;
115
- }
116
- // HT margin: gap either side of the centre line so bars don't
117
- // touch it. Edge margins account for half a bar width so the
118
- // bar's outer edge sits at the padding boundary. Finished
119
- // matches use wider padding for breathing room.
120
- const htMargin = Math.max(firstHalfBarWidth, secondHalfBarWidth) / 2 + CHART.barGap;
121
- const edgePad = isLive ? 10 : 18;
122
- const leftEdgeMargin = edgePad + firstHalfBarWidth / 2;
123
- const rightEdgeMargin = edgePad + secondHalfBarWidth / 2;
124
- const leftWidth = halfWidth - htMargin - leftEdgeMargin;
125
- const rightWidth = halfWidth - htMargin - rightEdgeMargin;
126
- const isSecondHalf = half === 2 || (half == null && minute > firstHalfMax);
127
- if (!isSecondHalf) {
128
- const firstHalfElapsed = minute - firstHalfStartMin;
129
- return leftEdgeMargin + (firstHalfElapsed / firstHalfRange) * leftWidth;
130
- }
131
- const secondHalfElapsed = minute - secondHalfStart;
132
- return (halfWidth +
133
- htMargin +
134
- (secondHalfElapsed / secondHalfRange) * rightWidth);
135
- };
113
+ const etStartMin = extraTimePreds.length > 0
114
+ ? Math.min(...extraTimePreds.map(p => p.min))
115
+ : extraTimeStart;
116
+ const lastEtMin = extraTimePreds.length > 0
117
+ ? Math.max(...extraTimePreds.map(p => p.min))
118
+ : extraTimeStart;
119
+ const etExtent = lastEtMin - etStartMin;
120
+ const extraTimeRange = Math.max(etExtent, extraTimeLength || 30) *
121
+ (isLive && currentHalf === 3 ? 1.02 : 1);
122
+ const edgePad = isLive ? 10 : 18;
123
+ const toX = computeToX({
124
+ sectionWidths,
125
+ barWidths,
126
+ firstHalfStartMin,
127
+ firstHalfRange,
128
+ secondHalfStart,
129
+ secondHalfRange,
130
+ extraTimeStart: etStartMin,
131
+ extraTimeRange,
132
+ hasExtraTime,
133
+ isLive,
134
+ barGap: CHART.barGap,
135
+ edgePad,
136
+ firstHalfMax
137
+ });
136
138
  const currentMinute = graphSettings && graphSettings.currentMinute;
137
- // HT marker always at dead-centre (50/50 split).
138
- // Rendered first in SVG so bars paint on top of the dashed line.
139
+ // HT marker at section boundary
139
140
  const showHt = htMinute !== undefined && hasChartData;
140
- const htX = showHt ? CHART.width / 2 : undefined;
141
- // Clamp the live line within its half so it never crosses HT.
141
+ const htX = showHt ? sectionWidths.firstHalfWidth : undefined;
142
+ // FT marker at second section boundary (only for ET matches)
143
+ const showFt = hasExtraTime && ftPoint !== undefined && hasChartData;
144
+ const ftX = showFt
145
+ ? sectionWidths.firstHalfWidth + sectionWidths.secondHalfWidth
146
+ : undefined;
147
+ // Clamp the live line within its section
142
148
  const rawCurrentX = currentMinute !== undefined && hasChartData
143
149
  ? toX(currentMinute, currentHalf)
144
150
  : undefined;
145
- const currentX = rawCurrentX !== undefined
146
- ? currentHalf === 1
147
- ? Math.min(rawCurrentX, halfWidth - 2)
148
- : Math.max(rawCurrentX, halfWidth + 2)
151
+ const currentX = rawCurrentX !== undefined && currentHalf !== undefined
152
+ ? clampCurrentX(rawCurrentX, currentHalf, sectionWidths)
149
153
  : undefined;
150
154
  const toPercent = (svgCoord, total) => (svgCoord / total) * 100;
151
155
  // Map of goal minutes → which team scored, used to force the
@@ -202,6 +206,7 @@ export const OptaMatchStatsMomentum = React.memo(({ feed, match, apiBaseUrl, isA
202
206
  React.createElement("svg", { className: "momentum-chart", viewBox: `0 0 ${CHART.width} ${CHART.height}`, "aria-label": `Match momentum chart: ${homeTeamName} vs ${awayTeamName}`, role: "img" },
203
207
  React.createElement(GoalGradientDefs, { homeColor: homeColor, awayColor: awayColor }),
204
208
  htX !== undefined && React.createElement(HalfTimeMarker, { x: htX }),
209
+ ftX !== undefined && React.createElement(HalfTimeMarker, { x: ftX }),
205
210
  momentumData.map(point => {
206
211
  if (point.type !== 'YC' && point.type !== 'RC') {
207
212
  return null;
@@ -233,4 +238,4 @@ export const OptaMatchStatsMomentum = React.memo(({ feed, match, apiBaseUrl, isA
233
238
  React.createElement("span", { className: "momentum-team-swatch" }),
234
239
  awayTeamName))));
235
240
  });
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0YU1hdGNoU3RhdHNNb21lbnR1bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL29wdGEvZm9vdGJhbGwvb3B0YS1tYXRjaC1zdGF0cy9tb21lbnR1bS9PcHRhTWF0Y2hTdGF0c01vbWVudHVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLElBQUksRUFDTCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsV0FBVyxFQUNYLFlBQVksRUFDWixZQUFZLEVBQ1osY0FBYyxFQUNkLG1CQUFtQixFQUNwQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQVE5QixLQUFLLENBQUMsSUFBSSxDQUNiLENBQUMsRUFD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
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3B0YU1hdGNoU3RhdHNNb21lbnR1bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL29wdGEvZm9vdGJhbGwvb3B0YS1tYXRjaC1zdGF0cy9tb21lbnR1bS9PcHRhTWF0Y2hTdGF0c01vbWVudHVtLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTdFLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsYUFBYSxFQUNkLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsSUFBSSxFQUNMLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsWUFBWSxFQUNaLFlBQVksRUFDWixjQUFjLEVBQ2QsbUJBQW1CLEVBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsTUFBTSxDQUFD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