fansunited-frontend-components 0.0.86 → 0.0.87
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/Betslip.js +1 -1
- package/ChanceGame.js +10 -10
- package/ClassicQuizPlay.js +1 -1
- package/CollectLead.js +7 -7
- package/CompetitionStatistics.d.ts +5 -0
- package/CompetitionStatistics.d.ts.map +1 -0
- package/CompetitionStatistics.js +2802 -0
- package/CompetitorCard.js +637 -656
- package/Discussion.js +1 -1
- package/EitherOrPlay.js +1 -1
- package/EventCard.js +40 -47
- package/EventGamePlay.js +1 -1
- package/Leaderboard.js +13 -13
- package/List.js +15 -15
- package/MatchQuizPlay.js +1 -1
- package/PersonalityQuizPlay.js +1 -1
- package/PickThePair.js +11 -11
- package/PlayerOfTheMatch.js +22 -22
- package/PollVote.js +1 -1
- package/Predictor.js +1 -1
- package/README.md +138 -3
- package/Standings.js +10 -10
- package/TopX.js +38 -37
- package/chunks/{AccessTime-DZsXIVlS.js → AccessTime-DnYmc2y3.js} +1 -1
- package/chunks/{AlertMessage-mdjyklCX.js → AlertMessage-DaxNsecq.js} +21 -20
- package/chunks/{Avatar-D3yp-aRF.js → Avatar-CmxmG17Y.js} +3 -3
- package/chunks/{Button-Ba88lSnz.js → Button-ClWJ5CUf.js} +3 -3
- package/chunks/{Card-ZbfN9iNz.js → Card-BAIFE-g5.js} +12 -11
- package/chunks/{CardActions-CmWWezXa.js → CardActions-UK4_wiGW.js} +11 -11
- package/chunks/{CardContent-DxoVbjf2.js → CardContent-BKLKsqNJ.js} +2 -2
- package/chunks/{ChanceGameEmbedVariant-s8IuiPTs.js → ChanceGameEmbedVariant-BkX-XQ-f.js} +10 -10
- package/chunks/{CheckCircle-BG2qEsq1.js → CheckCircle-DPspFBOU.js} +1 -1
- package/chunks/{Chip-dm_ka0yY.js → Chip-06eY-2lp.js} +38 -37
- package/chunks/{Close-Da_jsGnv.js → Close-C04vOO5T.js} +1 -1
- package/chunks/{Close-y509nyXQ.js → Close-DFwlCPON.js} +1 -1
- package/chunks/{CollectLeadForm-CQLR-11r.js → CollectLeadForm-CNl5gQZc.js} +46 -45
- package/chunks/{ConsentsList-C-U7raxx.js → ConsentsList-CccpD61h.js} +6 -6
- package/chunks/{DirectionScope-naCviTG1.js → DirectionScope-8YC2_4GO.js} +1 -1
- package/chunks/{Divider-DQT1c9FQ.js → Divider-DWIh5AWp.js} +3 -3
- package/chunks/{Edit-DaTdMbng.js → Edit-CMe6gWEl.js} +8 -8
- package/chunks/{EmojiEvents-DFNrzPuy.js → EmojiEvents-CRgQHdIP.js} +1 -1
- package/chunks/{FavoriteBorder-CbmeWW2T.js → FavoriteBorder-4LopuXjl.js} +1 -1
- package/chunks/{FormControl-DgzOlvzS.js → FormControl-DVXYjXgr.js} +12 -12
- package/chunks/{FormLabel-BSFhHZnm.js → FormLabel-D5Fg4BoV.js} +3 -3
- package/chunks/{GlobalStyles-DMO_VrN7.js → GlobalStyles-Cu-OUtHY.js} +1 -1
- package/chunks/{InlineSpinner-BDGu6S9a.js → InlineSpinner-BqP-sRnL.js} +2 -2
- package/chunks/{Input-Cb3solC7.js → Input-BOvLXH0a.js} +19 -18
- package/chunks/{KeyboardArrowDown-p7zQXgQW.js → KeyboardArrowDown-BQz06NpG.js} +1 -1
- package/chunks/{KeyboardArrowRight-CxFWmjUb.js → KeyboardArrowRight-CMArGhjp.js} +1 -1
- package/chunks/{Link-5-5Tkbsx.js → Link-C73EMUDp.js} +17 -16
- package/chunks/{ListItemButton-ClXre7Xx.js → ListItemButton-6Dx_qKG9.js} +20 -19
- package/chunks/{ModalClose-DvCxOJfi.js → ModalClose-DCM0NGvd.js} +6 -6
- package/chunks/{ModalDialog-BfVORTO9.js → ModalDialog-CaSBYjVn.js} +22 -22
- package/chunks/{NotFoundSkeleton-CBL3Q0e2.js → NotFoundSkeleton-D34gqMWJ.js} +2 -2
- package/chunks/{Notification-DEfeZ_zB.js → Notification-Q_rv7f9m.js} +20 -19
- package/chunks/{OverlayScoreStateSkeleton-BfWHiCoT.js → OverlayScoreStateSkeleton-k9CYtDkE.js} +4 -4
- package/chunks/{OverlayScoreStateWrapperSkeleton-DGCoxYU_.js → OverlayScoreStateWrapperSkeleton-B8wadyuJ.js} +1 -1
- package/chunks/{OverlaySignInSkeleton-Bjs-kbH_.js → OverlaySignInSkeleton-D_idxb5n.js} +4 -4
- package/chunks/{OverlaySkeleton-CYq0fXsc.js → OverlaySkeleton-m-qkzhXB.js} +9 -9
- package/chunks/{Person-BvTGLIe1.js → Person-utLXm1J4.js} +1 -1
- package/chunks/{PersonOutline-DylGIHBz.js → PersonOutline-lhMwfisr.js} +1 -1
- package/chunks/{PickOneOfX-Cw5YmUZK.js → PickOneOfX-DRiLtqqV.js} +3 -3
- package/chunks/{Popper-CiuNPpkb.js → Popper-Bdn0wHi9.js} +3 -3
- package/chunks/{Portal-DzlKOG-O.js → Portal-BEroYNyJ.js} +11 -11
- package/chunks/{Portal-IratSYID.js → Portal-BdRuZNR8.js} +1 -1
- package/chunks/{Predictor-C3Kr_dEA.js → Predictor-Bn2zkvlD.js} +2007 -2011
- package/chunks/{PrizeCard-CwEzUVMJ.js → PrizeCard-nRBh9VU_.js} +4084 -2173
- package/chunks/{Search-B7BcOoCG.js → Search-B-Xqc3De.js} +1 -1
- package/chunks/{Select-oNgIy1H3.js → Select-CmHfLRTg.js} +25 -24
- package/chunks/{Sheet-DVdyMkHi.js → Sheet-Q5izbz85.js} +18 -17
- package/chunks/{SignInCta-DcNkObOQ.js → SignInCta-FBCz227A.js} +3 -3
- package/chunks/{Spinner-DBETUiAV.js → Spinner-wUVcNUtR.js} +2 -2
- package/chunks/{SportsSoccer-DGQ7NYD7.js → SportsSoccer-Dq3Azbu-.js} +1 -1
- package/chunks/{Stack-CppwMpFB.js → Stack-CY7bQJ7u.js} +19 -19
- package/chunks/{StandardContentSkeleton-B8nlGHR6.js → StandardContentSkeleton-Bm_8xH6p.js} +1 -1
- package/chunks/{Table-Dk1ukQa6.js → Table-Cew1z7pw.js} +2 -2
- package/chunks/{Tabs-CmFfmpyp.js → Tabs-DuqeCPIW.js} +19 -18
- package/chunks/{Textarea-BRHSeC7k.js → Textarea-Dwn6AF-Z.js} +3 -3
- package/chunks/{TimerOutlined-iVv_QE1G.js → TimerOutlined-HGpj-FEQ.js} +1 -1
- package/chunks/{Tooltip-BaFJF8Hm.js → Tooltip-Boqkti8t.js} +44 -43
- package/chunks/Typography-DaXtC0md.js +1086 -0
- package/chunks/{WorkspacePremiumOutlined-CgWyDKg5.js → WorkspacePremiumOutlined-OHYXXF58.js} +1 -1
- package/chunks/colorInversionUtils-BPGyYARg.js +347 -0
- package/chunks/{createSvgIcon-BkXgNHbb.js → createSvgIcon-DaCJY2eU.js} +1 -1
- package/chunks/{createSvgIcon-DvpPe0m8.js → createSvgIcon-mpOIuxRM.js} +2 -2
- package/chunks/{dividerClasses-_a2MkLdj.js → dividerClasses-D8aWZR-L.js} +1 -1
- package/chunks/{elementAcceptingRef-CFCF4JTN.js → elementAcceptingRef-DhvOV1kD.js} +1 -1
- package/chunks/{formLabelClasses-DnxGgDxQ.js → formLabelClasses-DrWVkeKS.js} +1 -1
- package/chunks/{helpers-BVcELFvC.js → helpers-CqPvv3gw.js} +1 -1
- package/chunks/index-BI_1_9JX.js +4 -0
- package/chunks/index-CBD3UTgX.js +4 -0
- package/chunks/index-CDxdDU5W.js +4 -0
- package/chunks/index-CR9X9c_3.js +4 -0
- package/chunks/index-DLWjbTmD.js +4 -0
- package/chunks/index-DVzuyb5J.js +4 -0
- package/chunks/{index-Jo_fbxsQ.js → index-iWn7Rdh9.js} +1 -1
- package/chunks/index-kvAqk2tW.js +4 -0
- package/chunks/{main-CpERt7cC.js → main-BOQ_5kqd.js} +30 -30
- package/chunks/{main-CpXKD7Ei.js → main-BRCfR5lM.js} +76 -75
- package/chunks/{main-RD9fUvtz.js → main-C6bG2zD0.js} +28 -28
- package/chunks/{main-Che3VjMd.js → main-CB6OELiE.js} +19 -19
- package/chunks/{main-f7EUpatJ.js → main-DgcqQ3D5.js} +22 -22
- package/chunks/{main-DZoTUuoz.js → main-Dn5EUDh-.js} +34 -34
- package/chunks/{main-NkO906fN.js → main-DoPO3SkP.js} +3 -3
- package/chunks/{main-P_iMTyYG.js → main-DyQtrmbq.js} +25 -25
- package/chunks/searchEntities-SJcoznz0.js +38 -0
- package/chunks/{useButton-Qs8SQ3Oc.js → useButton-4zMfywSn.js} +5 -4
- package/chunks/{useConsents-DPYMv1XL.js → useConsents-C9bnFES_.js} +12 -12
- package/chunks/{useEventCallback-CdVOlM24.js → useEventCallback-D-URXDH4.js} +1 -1
- package/chunks/{useForwardedInput-D_hsYWHs.js → useForwardedInput-Bm2kgM0U.js} +2 -2
- package/chunks/{useImageVariant-DKmsQtyv.js → useImageVariant-Bwh3HQQD.js} +1 -1
- package/chunks/{useParticipationDraft-D9mIeJ3U.js → useParticipationDraft-ZkV4H6kC.js} +6 -6
- package/chunks/{useSwitch-CqvwWw9p.js → useSwitch-CIN7Th7t.js} +24 -23
- package/components.d.ts +2 -1
- package/components.d.ts.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +14 -12
- package/package.json +6 -2
- package/chunks/Typography-Du02dCpZ.js +0 -1429
- package/chunks/index-4WCNqsoq.js +0 -4
- package/chunks/index-7NrjBlB3.js +0 -4
- package/chunks/index-Blkau85P.js +0 -4
- package/chunks/index-CnOFf4hs.js +0 -4
- package/chunks/index-CwIKdVGP.js +0 -4
- package/chunks/index-DjIGlrHG.js +0 -4
- package/chunks/index-a8UF4nkE.js +0 -4
package/Discussion.js
CHANGED
package/EitherOrPlay.js
CHANGED
package/EventCard.js
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { jsxs as p, Fragment as G, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import K, { useRef as Se, useState as D, useCallback as we, useEffect as fe, useMemo as de, useContext as zn, useLayoutEffect as Pn } from "react";
|
|
3
|
-
import { g as on, u as rn, b as Dn, v as an, A as Mn, B as l, z as bt, a as me, f as Gn, d as Hn, y as et, O as Un, n as Bn, i as St, p as jn, o as Vn, q as Kn, r as Yn, C as Xn, s as Qn, E as qn, t as Zn, w as Jn } from "./chunks/PrizeCard-
|
|
4
|
-
import { S as eo } from "./chunks/Spinner-
|
|
3
|
+
import { g as on, u as rn, b as Dn, v as an, A as Mn, B as l, z as bt, a as me, f as Gn, d as Hn, y as et, O as Un, n as Bn, i as St, p as jn, o as Vn, q as Kn, r as Yn, C as Xn, s as Qn, E as qn, t as Zn, w as Jn } from "./chunks/PrizeCard-nRBh9VU_.js";
|
|
4
|
+
import { S as eo } from "./chunks/Spinner-wUVcNUtR.js";
|
|
5
5
|
import { createPortal as wt } from "react-dom";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import { P as
|
|
19
|
-
import {
|
|
6
|
+
import { f as to } from "./chunks/searchEntities-SJcoznz0.js";
|
|
7
|
+
import { h as Me } from "./chunks/helpers-CqPvv3gw.js";
|
|
8
|
+
import { E as ft } from "./chunks/EmojiEvents-CRgQHdIP.js";
|
|
9
|
+
import { T as O } from "./chunks/Typography-DaXtC0md.js";
|
|
10
|
+
import { S as rt } from "./chunks/Sheet-Q5izbz85.js";
|
|
11
|
+
import { T as no } from "./chunks/Tooltip-Boqkti8t.js";
|
|
12
|
+
import { K as Pe, a as oo } from "./chunks/KeyboardArrowDown-BQz06NpG.js";
|
|
13
|
+
import { c as Ue } from "./chunks/createSvgIcon-DaCJY2eU.js";
|
|
14
|
+
import { I as ro } from "./chunks/InlineSpinner-BqP-sRnL.js";
|
|
15
|
+
import { N as io } from "./chunks/Notification-Q_rv7f9m.js";
|
|
16
|
+
import { C as tt, E as ao, D as It, S as so, a as lo } from "./chunks/SportsSoccer-Dq3Azbu-.js";
|
|
17
|
+
import { K as co, a as mo } from "./chunks/KeyboardArrowRight-CMArGhjp.js";
|
|
18
|
+
import { P as uo } from "./chunks/PersonOutline-lhMwfisr.js";
|
|
19
|
+
import { P as sn } from "./chunks/Person-utLXm1J4.js";
|
|
20
|
+
import { G as ho } from "./chunks/GlobalStyles-Cu-OUtHY.js";
|
|
20
21
|
const it = ({
|
|
21
22
|
title: e,
|
|
22
23
|
children: n,
|
|
@@ -87,11 +88,11 @@ const it = ({
|
|
|
87
88
|
s ?? document.body
|
|
88
89
|
)
|
|
89
90
|
] });
|
|
90
|
-
},
|
|
91
|
+
}, po = Ue(/* @__PURE__ */ r("path", {
|
|
91
92
|
d: "M10.67 21c-.35 0-.62-.31-.57-.66L11 14H7.5c-.88 0-.33-.75-.31-.78 1.26-2.23 3.15-5.53 5.65-9.93.1-.18.3-.29.5-.29.35 0 .62.31.57.66l-.9 6.34h3.51c.4 0 .62.19.4.66-3.29 5.74-5.2 9.09-5.75 10.05-.1.18-.29.29-.5.29"
|
|
92
|
-
}), "BoltRounded"),
|
|
93
|
+
}), "BoltRounded"), fo = Ue(/* @__PURE__ */ r("path", {
|
|
93
94
|
d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2M9.29 16.29 5.7 12.7a.996.996 0 0 1 0-1.41c.39-.39 1.02-.39 1.41 0L10 14.17l6.88-6.88c.39-.39 1.02-.39 1.41 0s.39 1.02 0 1.41l-7.59 7.59c-.38.39-1.02.39-1.41 0"
|
|
94
|
-
}), "CheckCircleRounded"),
|
|
95
|
+
}), "CheckCircleRounded"), go = Ue(/* @__PURE__ */ r("path", {
|
|
95
96
|
d: "m14.4 6-.24-1.2c-.09-.46-.5-.8-.98-.8H6c-.55 0-1 .45-1 1v15c0 .55.45 1 1 1s1-.45 1-1v-6h5.6l.24 1.2c.09.47.5.8.98.8H19c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z"
|
|
96
97
|
}), "FlagRounded"), ln = Ue([/* @__PURE__ */ r("path", {
|
|
97
98
|
d: "m18 12.18-1.5 1.64 2 2.18h-13l2-2.18L6 12.18l-3 3.27V20c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4.54z"
|
|
@@ -99,7 +100,7 @@ const it = ({
|
|
|
99
100
|
d: "M10.59 14.42c.78.79 2.05.8 2.84.01l4.98-4.98c.78-.78.78-2.05 0-2.83l-3.54-3.53c-.78-.78-2.05-.78-2.83 0L7.09 8.04c-.78.78-.78 2.03-.01 2.82zm2.87-9.92 3.53 3.53-4.94 4.94-3.53-3.53z"
|
|
100
101
|
}, "1")], "HowToVoteRounded"), cn = Ue(/* @__PURE__ */ r("path", {
|
|
101
102
|
d: "M15.5 14h-.79l-.28-.27c1.2-1.4 1.82-3.31 1.48-5.34-.47-2.78-2.79-5-5.59-5.34-4.23-.52-7.79 3.04-7.27 7.27.34 2.8 2.56 5.12 5.34 5.59 2.03.34 3.94-.28 5.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0s.41-1.08 0-1.49zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"
|
|
102
|
-
}), "SearchRounded"),
|
|
103
|
+
}), "SearchRounded"), xo = "https://sports.fansunitedapi.com/v1", dn = (e) => {
|
|
103
104
|
try {
|
|
104
105
|
const n = e.helpers.getSDKConfiguration();
|
|
105
106
|
return !(n != null && n.apiKey) || !(n != null && n.clientId) ? null : { apiKey: n.apiKey, clientId: n.clientId };
|
|
@@ -115,7 +116,7 @@ const it = ({
|
|
|
115
116
|
});
|
|
116
117
|
o && s.set("disable_cache", String(Date.now()));
|
|
117
118
|
const c = await fetch(
|
|
118
|
-
`${
|
|
119
|
+
`${xo}/events/${encodeURIComponent(n)}?${s.toString()}`,
|
|
119
120
|
{ signal: t }
|
|
120
121
|
);
|
|
121
122
|
if (!c.ok) return null;
|
|
@@ -165,19 +166,11 @@ const it = ({
|
|
|
165
166
|
const s = dn(e);
|
|
166
167
|
if (!s) return o;
|
|
167
168
|
try {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
}), a = await fetch(
|
|
174
|
-
`${xo}/entities/search?${c.toString()}`,
|
|
175
|
-
{ signal: t }
|
|
176
|
-
);
|
|
177
|
-
if (!a.ok) return o;
|
|
178
|
-
((await a.json()).data ?? []).forEach((u) => {
|
|
179
|
-
u != null && u.id && o.set(u.id, u);
|
|
180
|
-
});
|
|
169
|
+
(await to(
|
|
170
|
+
s,
|
|
171
|
+
i,
|
|
172
|
+
{ signal: t, partial: !0 }
|
|
173
|
+
)).forEach((a) => o.set(a.id, a));
|
|
181
174
|
} catch {
|
|
182
175
|
return o;
|
|
183
176
|
}
|
|
@@ -1919,7 +1912,7 @@ const it = ({
|
|
|
1919
1912
|
}
|
|
1920
1913
|
);
|
|
1921
1914
|
return L && L !== R ? /* @__PURE__ */ r(
|
|
1922
|
-
|
|
1915
|
+
no,
|
|
1923
1916
|
{
|
|
1924
1917
|
title: L,
|
|
1925
1918
|
variant: "soft",
|
|
@@ -3722,7 +3715,7 @@ const it = ({
|
|
|
3722
3715
|
numberEm: a = 1.375
|
|
3723
3716
|
}) => {
|
|
3724
3717
|
const { colors: d, fonts: u, radius: f, tint: h } = z(), b = c === "horizontal", g = (y) => Math.max(t, Math.min(o, y)), E = (y) => {
|
|
3725
|
-
const _ = g(e + (y === "increment" ? 1 : -1)), v = _ === e, I = b ? y === "increment" ?
|
|
3718
|
+
const _ = g(e + (y === "increment" ? 1 : -1)), v = _ === e, I = b ? y === "increment" ? co : mo : y === "increment" ? oo : Pe;
|
|
3726
3719
|
return /* @__PURE__ */ r(
|
|
3727
3720
|
l,
|
|
3728
3721
|
{
|
|
@@ -4439,7 +4432,7 @@ const it = ({
|
|
|
4439
4432
|
alt: e.name,
|
|
4440
4433
|
sx: { width: "100%", height: "100%", objectFit: "cover" }
|
|
4441
4434
|
}
|
|
4442
|
-
) : /* @__PURE__ */ r(
|
|
4435
|
+
) : /* @__PURE__ */ r(uo, { sx: { fontSize: `${n * 0.6}em`, color: i } })
|
|
4443
4436
|
}
|
|
4444
4437
|
), li = ({
|
|
4445
4438
|
players: e,
|
|
@@ -4950,7 +4943,7 @@ const it = ({
|
|
|
4950
4943
|
},
|
|
4951
4944
|
children: [
|
|
4952
4945
|
/* @__PURE__ */ r(
|
|
4953
|
-
|
|
4946
|
+
go,
|
|
4954
4947
|
{
|
|
4955
4948
|
sx: {
|
|
4956
4949
|
flexShrink: 0,
|
|
@@ -5096,7 +5089,7 @@ const it = ({
|
|
|
5096
5089
|
"aria-label": x.edit,
|
|
5097
5090
|
title: x.edit,
|
|
5098
5091
|
sx: Q,
|
|
5099
|
-
children: /* @__PURE__ */ r(
|
|
5092
|
+
children: /* @__PURE__ */ r(ao, { sx: { fontSize: "0.9375em" } })
|
|
5100
5093
|
}
|
|
5101
5094
|
),
|
|
5102
5095
|
a && /* @__PURE__ */ r(
|
|
@@ -5584,7 +5577,7 @@ const it = ({
|
|
|
5584
5577
|
}
|
|
5585
5578
|
) : null, ie = ee > 0 && ee === e.length, q = !s && ie, Re = s ? ee > 1 : e.length > 1, Oe = m(
|
|
5586
5579
|
s ? Re ? "eventCard.predictions.yoursPlural" : "eventCard.predictions.yours" : q ? "predictor.play.allPredicted" : Re ? "eventCard.predictions.ctaPlural" : "eventCard.predictions.cta"
|
|
5587
|
-
), Ie = s || q ?
|
|
5580
|
+
), Ie = s || q ? fo : po, B = q ? C.success : C.primary, xe = Array.from(o.values()).filter(
|
|
5588
5581
|
(F) => F.status === "SETTLED"
|
|
5589
5582
|
), J = xe.filter(
|
|
5590
5583
|
(F) => F.outcome === "CORRECT" || F.outcome === "PARTIALLY_CORRECT"
|
|
@@ -5615,7 +5608,7 @@ const it = ({
|
|
|
5615
5608
|
}[u];
|
|
5616
5609
|
return /* @__PURE__ */ p(G, { children: [
|
|
5617
5610
|
/* @__PURE__ */ r(
|
|
5618
|
-
|
|
5611
|
+
io,
|
|
5619
5612
|
{
|
|
5620
5613
|
notification: ne,
|
|
5621
5614
|
onClose: () => oe((F) => ({ ...F, open: !1 }))
|
|
@@ -5680,7 +5673,7 @@ const it = ({
|
|
|
5680
5673
|
}
|
|
5681
5674
|
),
|
|
5682
5675
|
V,
|
|
5683
|
-
i ? /* @__PURE__ */ r(
|
|
5676
|
+
i ? /* @__PURE__ */ r(ro, {}) : s ? (
|
|
5684
5677
|
// Once graded, the total earned replaces the progress — how many markets were filled in is
|
|
5685
5678
|
// no longer the interesting number.
|
|
5686
5679
|
ke && /* @__PURE__ */ p(G, { children: [
|
|
@@ -6162,7 +6155,7 @@ const it = ({
|
|
|
6162
6155
|
// An individual gets a person, not a club shield — a tennis player with neither headshot
|
|
6163
6156
|
// nor flag was showing a team badge.
|
|
6164
6157
|
o ? /* @__PURE__ */ r(sn, { sx: { fontSize: `${t * 0.62}em`, color: s.dim } }) : /* @__PURE__ */ r(
|
|
6165
|
-
|
|
6158
|
+
so,
|
|
6166
6159
|
{
|
|
6167
6160
|
sx: { fontSize: `${t * 0.6}em`, color: s.dim }
|
|
6168
6161
|
}
|
|
@@ -7115,7 +7108,7 @@ const it = ({
|
|
|
7115
7108
|
}) => {
|
|
7116
7109
|
const { colors: o } = z(), i = { width: `${t}em`, height: `${t}em`, flexShrink: 0 };
|
|
7117
7110
|
return e === "goal" || e === "var" ? /* @__PURE__ */ r(
|
|
7118
|
-
|
|
7111
|
+
lo,
|
|
7119
7112
|
{
|
|
7120
7113
|
sx: {
|
|
7121
7114
|
...i,
|
|
@@ -8945,7 +8938,7 @@ const it = ({
|
|
|
8945
8938
|
direction: s,
|
|
8946
8939
|
children: [
|
|
8947
8940
|
/* @__PURE__ */ r(
|
|
8948
|
-
|
|
8941
|
+
ho,
|
|
8949
8942
|
{
|
|
8950
8943
|
styles: {
|
|
8951
8944
|
"@keyframes ec-pulse": {
|
|
@@ -8967,7 +8960,7 @@ const it = ({
|
|
|
8967
8960
|
g,
|
|
8968
8961
|
E
|
|
8969
8962
|
] });
|
|
8970
|
-
}, Qi = (e) => /* @__PURE__ */ r(Xi, { ...e, children: /* @__PURE__ */ r(Yi, { ...e }) }),
|
|
8963
|
+
}, Qi = (e) => /* @__PURE__ */ r(Xi, { ...e, children: /* @__PURE__ */ r(Yi, { ...e }) }), xa = Qi;
|
|
8971
8964
|
export {
|
|
8972
|
-
|
|
8965
|
+
xa as EventCard
|
|
8973
8966
|
};
|
package/EventGamePlay.js
CHANGED
package/Leaderboard.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { jsxs as E, jsx as l, Fragment as ce } from "react/jsx-runtime";
|
|
2
2
|
import z, { useState as B, useEffect as Q, useCallback as me, useMemo as D } from "react";
|
|
3
|
-
import { a as X, b as fe, v as he, x as ge, g as G, f as de, u as O, d as j, B as L, c as ue, m as be, p as ye, o as xe, q as Ce, r as ve, C as Te, s as Pe, E as Se, t as we, w as Ee } from "./chunks/PrizeCard-
|
|
3
|
+
import { a as X, b as fe, v as he, x as ge, g as G, f as de, u as O, d as j, B as L, c as ue, m as be, p as ye, o as xe, q as Ce, r as ve, C as Te, s as Pe, E as Se, t as we, w as Ee } from "./chunks/PrizeCard-nRBh9VU_.js";
|
|
4
4
|
import { createPortal as Ae } from "react-dom";
|
|
5
|
-
import { A as J } from "./chunks/AlertMessage-
|
|
6
|
-
import { F as Ie } from "./chunks/FormLabel-
|
|
7
|
-
import { T as R } from "./chunks/Typography-
|
|
8
|
-
import { S as Re, a as Le } from "./chunks/Select-
|
|
9
|
-
import { P as ee } from "./chunks/Person-
|
|
10
|
-
import { h as U, a as Me } from "./chunks/helpers-
|
|
11
|
-
import { S as ze } from "./chunks/Spinner-
|
|
12
|
-
import { S as Be } from "./chunks/Sheet-
|
|
13
|
-
import { T as Fe } from "./chunks/Table-
|
|
14
|
-
import { A as te } from "./chunks/Avatar-
|
|
15
|
-
import { D as H } from "./chunks/DirectionScope-
|
|
16
|
-
import { I as k, B as re } from "./chunks/Button-
|
|
5
|
+
import { A as J } from "./chunks/AlertMessage-DaxNsecq.js";
|
|
6
|
+
import { F as Ie } from "./chunks/FormLabel-D5Fg4BoV.js";
|
|
7
|
+
import { T as R } from "./chunks/Typography-DaXtC0md.js";
|
|
8
|
+
import { S as Re, a as Le } from "./chunks/Select-CmHfLRTg.js";
|
|
9
|
+
import { P as ee } from "./chunks/Person-utLXm1J4.js";
|
|
10
|
+
import { h as U, a as Me } from "./chunks/helpers-CqPvv3gw.js";
|
|
11
|
+
import { S as ze } from "./chunks/Spinner-wUVcNUtR.js";
|
|
12
|
+
import { S as Be } from "./chunks/Sheet-Q5izbz85.js";
|
|
13
|
+
import { T as Fe } from "./chunks/Table-Cew1z7pw.js";
|
|
14
|
+
import { A as te } from "./chunks/Avatar-CmxmG17Y.js";
|
|
15
|
+
import { D as H } from "./chunks/DirectionScope-8YC2_4GO.js";
|
|
16
|
+
import { I as k, B as re } from "./chunks/Button-ClWJ5CUf.js";
|
|
17
17
|
import { C as Ue, a as $e } from "./chunks/chevrons-right-CXSpQt9w.js";
|
|
18
18
|
import { C as Qe } from "./chunks/chevron-left-CxfCSZcr.js";
|
|
19
19
|
import { C as He } from "./chunks/chevron-right-BEQMacFn.js";
|
package/List.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { jsx as o, jsxs as E } from "react/jsx-runtime";
|
|
2
2
|
import * as V from "react";
|
|
3
3
|
import { useState as A, useRef as z, useCallback as W, useEffect as at, lazy as H, Suspense as ct } from "react";
|
|
4
|
-
import { F as lt, G as dt, H as pt, _ as $, I as mt, P as h, g as ut, u as ft, f as ht, d as gt, a as J, i as et, B as x, b as yt, v as Ct } from "./chunks/PrizeCard-
|
|
4
|
+
import { F as lt, G as dt, H as pt, _ as $, I as mt, P as h, g as ut, u as ft, f as ht, d as gt, a as J, i as et, B as x, b as yt, v as Ct } from "./chunks/PrizeCard-nRBh9VU_.js";
|
|
5
5
|
import "react-dom";
|
|
6
|
-
import { P as xt } from "./chunks/Portal-
|
|
7
|
-
import { S as nt } from "./chunks/Spinner-
|
|
8
|
-
import { a as It } from "./chunks/index-
|
|
9
|
-
import { C as bt } from "./chunks/Card-
|
|
10
|
-
import { s as St,
|
|
11
|
-
import { C as Et } from "./chunks/CardContent-
|
|
12
|
-
import { C as vt } from "./chunks/Chip-
|
|
6
|
+
import { P as xt } from "./chunks/Portal-BdRuZNR8.js";
|
|
7
|
+
import { S as nt } from "./chunks/Spinner-wUVcNUtR.js";
|
|
8
|
+
import { a as It } from "./chunks/index-iWn7Rdh9.js";
|
|
9
|
+
import { C as bt } from "./chunks/Card-BAIFE-g5.js";
|
|
10
|
+
import { s as St, a as wt, b as Tt, c as Pt, T as D } from "./chunks/Typography-DaXtC0md.js";
|
|
11
|
+
import { C as Et } from "./chunks/CardContent-BKLKsqNJ.js";
|
|
12
|
+
import { C as vt } from "./chunks/Chip-06eY-2lp.js";
|
|
13
13
|
import { U as Mt } from "./chunks/users-wbJRbqW8.js";
|
|
14
14
|
import { W as Ut } from "./chunks/enums-B1lTCQvC.js";
|
|
15
|
-
import { M as Lt, a as Rt } from "./chunks/ModalDialog-
|
|
16
|
-
import { M as _t } from "./chunks/ModalClose-
|
|
17
|
-
import { D as k } from "./chunks/DirectionScope-
|
|
18
|
-
import { I as G, B as ot } from "./chunks/Button-
|
|
15
|
+
import { M as Lt, a as Rt } from "./chunks/ModalDialog-CaSBYjVn.js";
|
|
16
|
+
import { M as _t } from "./chunks/ModalClose-DCM0NGvd.js";
|
|
17
|
+
import { D as k } from "./chunks/DirectionScope-8YC2_4GO.js";
|
|
18
|
+
import { I as G, B as ot } from "./chunks/Button-ClWJ5CUf.js";
|
|
19
19
|
import { C as Ft, a as Ot } from "./chunks/chevrons-right-CXSpQt9w.js";
|
|
20
20
|
import { C as zt } from "./chunks/chevron-left-CxfCSZcr.js";
|
|
21
21
|
import { C as At } from "./chunks/chevron-right-BEQMacFn.js";
|
|
@@ -543,9 +543,9 @@ const rt = (e) => {
|
|
|
543
543
|
]
|
|
544
544
|
}
|
|
545
545
|
);
|
|
546
|
-
}, qt = H(() => import("./chunks/index-
|
|
547
|
-
() => import("./chunks/index-
|
|
548
|
-
), Xt = H(() => import("./chunks/index-
|
|
546
|
+
}, qt = H(() => import("./chunks/index-CDxdDU5W.js")), Jt = H(
|
|
547
|
+
() => import("./chunks/index-kvAqk2tW.js")
|
|
548
|
+
), Xt = H(() => import("./chunks/index-CR9X9c_3.js")), te = H(() => import("./chunks/index-DLWjbTmD.js")), ee = H(() => import("./chunks/index-CBD3UTgX.js")), ne = H(() => import("./chunks/index-BI_1_9JX.js")), oe = ({
|
|
549
549
|
item: e,
|
|
550
550
|
open: n,
|
|
551
551
|
onClose: t,
|
package/MatchQuizPlay.js
CHANGED
package/PersonalityQuizPlay.js
CHANGED
package/PickThePair.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { jsx as t, jsxs as w, Fragment as K } from "react/jsx-runtime";
|
|
2
|
-
import { g as Ie, h as se, e as We, l as De } from "./chunks/helpers-
|
|
2
|
+
import { g as Ie, h as se, e as We, l as De } from "./chunks/helpers-CqPvv3gw.js";
|
|
3
3
|
import J, { useMemo as me, useCallback as Le, useEffect as de, useState as G } from "react";
|
|
4
|
-
import { a as ne, i as Z, k as ze, f as ee, g as X, h as ge, B as x, u as re, l as Be, c as ue, d as te, m as ke, n as Ue, o as Ae, p as $e, q as _e, r as He, C as Ee, s as Oe, E as Me, t as je, w as Ne } from "./chunks/PrizeCard-
|
|
4
|
+
import { a as ne, i as Z, k as ze, f as ee, g as X, h as ge, B as x, u as re, l as Be, c as ue, d as te, m as ke, n as Ue, o as Ae, p as $e, q as _e, r as He, C as Ee, s as Oe, E as Me, t as je, w as Ne } from "./chunks/PrizeCard-nRBh9VU_.js";
|
|
5
5
|
import { P as le, W as fe } from "./chunks/enums-B1lTCQvC.js";
|
|
6
|
-
import { S as Ve } from "./chunks/Spinner-
|
|
6
|
+
import { S as Ve } from "./chunks/Spinner-wUVcNUtR.js";
|
|
7
7
|
import { createPortal as Ye } from "react-dom";
|
|
8
8
|
import { u as qe } from "./chunks/useInfoPage-BHdgKdme.js";
|
|
9
|
-
import { N as Xe } from "./chunks/NotFoundSkeleton-
|
|
10
|
-
import { S as Ge, O as Ke } from "./chunks/OverlaySkeleton-
|
|
11
|
-
import { C as Qe } from "./chunks/CollectLeadForm-
|
|
12
|
-
import { u as he } from "./chunks/useImageVariant-
|
|
13
|
-
import { T as p } from "./chunks/Typography-
|
|
14
|
-
import { T as Je } from "./chunks/TimerOutlined-
|
|
15
|
-
import { B as pe } from "./chunks/Button-
|
|
16
|
-
import { d as Ze, a as et } from "./chunks/index-
|
|
9
|
+
import { N as Xe } from "./chunks/NotFoundSkeleton-D34gqMWJ.js";
|
|
10
|
+
import { S as Ge, O as Ke } from "./chunks/OverlaySkeleton-m-qkzhXB.js";
|
|
11
|
+
import { C as Qe } from "./chunks/CollectLeadForm-CNl5gQZc.js";
|
|
12
|
+
import { u as he } from "./chunks/useImageVariant-Bwh3HQQD.js";
|
|
13
|
+
import { T as p } from "./chunks/Typography-DaXtC0md.js";
|
|
14
|
+
import { T as Je } from "./chunks/TimerOutlined-HGpj-FEQ.js";
|
|
15
|
+
import { B as pe } from "./chunks/Button-ClWJ5CUf.js";
|
|
16
|
+
import { d as Ze, a as et } from "./chunks/index-iWn7Rdh9.js";
|
|
17
17
|
const xe = ({
|
|
18
18
|
sdk: e,
|
|
19
19
|
contentId: n,
|
package/PlayerOfTheMatch.js
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import { jsx as o, jsxs as b, Fragment as de } from "react/jsx-runtime";
|
|
2
2
|
import { useRef as we, useEffect as O, useState as I, useMemo as re } from "react";
|
|
3
|
-
import { B as p, g as Ke, u as Xe, f as Ve, d as Ue, h as qe, a as H } from "./chunks/PrizeCard-
|
|
3
|
+
import { B as p, g as Ke, u as Xe, f as Ve, d as Ue, h as qe, a as H } from "./chunks/PrizeCard-nRBh9VU_.js";
|
|
4
4
|
import "react-dom";
|
|
5
|
-
import { P as _e } from "./chunks/Portal-
|
|
6
|
-
import { h as U, c as me } from "./chunks/helpers-
|
|
7
|
-
import { S as $e } from "./chunks/Spinner-
|
|
8
|
-
import { L as et } from "./chunks/Link-
|
|
9
|
-
import { N as tt } from "./chunks/Notification-
|
|
10
|
-
import { D as Je } from "./chunks/DirectionScope-
|
|
11
|
-
import { I as be, B as _ } from "./chunks/Button-
|
|
12
|
-
import { C as ot, a as nt, S as rt } from "./chunks/Search-
|
|
13
|
-
import { T as f } from "./chunks/Typography-
|
|
14
|
-
import { C as Ee } from "./chunks/Card-
|
|
15
|
-
import { C as it } from "./chunks/CardContent-
|
|
16
|
-
import { A as N } from "./chunks/Avatar-
|
|
17
|
-
import { C as st } from "./chunks/CardActions-
|
|
5
|
+
import { P as _e } from "./chunks/Portal-BdRuZNR8.js";
|
|
6
|
+
import { h as U, c as me } from "./chunks/helpers-CqPvv3gw.js";
|
|
7
|
+
import { S as $e } from "./chunks/Spinner-wUVcNUtR.js";
|
|
8
|
+
import { L as et } from "./chunks/Link-C73EMUDp.js";
|
|
9
|
+
import { N as tt } from "./chunks/Notification-Q_rv7f9m.js";
|
|
10
|
+
import { D as Je } from "./chunks/DirectionScope-8YC2_4GO.js";
|
|
11
|
+
import { I as be, B as _ } from "./chunks/Button-ClWJ5CUf.js";
|
|
12
|
+
import { C as ot, a as nt, S as rt } from "./chunks/Search-B-Xqc3De.js";
|
|
13
|
+
import { T as f } from "./chunks/Typography-DaXtC0md.js";
|
|
14
|
+
import { C as Ee } from "./chunks/Card-BAIFE-g5.js";
|
|
15
|
+
import { C as it } from "./chunks/CardContent-BKLKsqNJ.js";
|
|
16
|
+
import { A as N } from "./chunks/Avatar-CmxmG17Y.js";
|
|
17
|
+
import { C as st } from "./chunks/CardActions-UK4_wiGW.js";
|
|
18
18
|
import { X as at } from "./chunks/x-CK4GYo7T.js";
|
|
19
|
-
import { c as Se } from "./chunks/createSvgIcon-
|
|
20
|
-
import { C as ct } from "./chunks/Close-
|
|
21
|
-
import { I as At } from "./chunks/Input-
|
|
22
|
-
import { C as fe } from "./chunks/Chip-
|
|
23
|
-
import { S as K } from "./chunks/Stack-
|
|
24
|
-
import { A as Me } from "./chunks/AccessTime-
|
|
25
|
-
import { C as lt } from "./chunks/CheckCircle-
|
|
26
|
-
import { S as gt } from "./chunks/Sheet-
|
|
19
|
+
import { c as Se } from "./chunks/createSvgIcon-DaCJY2eU.js";
|
|
20
|
+
import { C as ct } from "./chunks/Close-C04vOO5T.js";
|
|
21
|
+
import { I as At } from "./chunks/Input-BOvLXH0a.js";
|
|
22
|
+
import { C as fe } from "./chunks/Chip-06eY-2lp.js";
|
|
23
|
+
import { S as K } from "./chunks/Stack-CY7bQJ7u.js";
|
|
24
|
+
import { A as Me } from "./chunks/AccessTime-DnYmc2y3.js";
|
|
25
|
+
import { C as lt } from "./chunks/CheckCircle-DPspFBOU.js";
|
|
26
|
+
import { S as gt } from "./chunks/Sheet-Q5izbz85.js";
|
|
27
27
|
const Ye = Se(/* @__PURE__ */ o("path", {
|
|
28
28
|
d: "M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39c.51-.66.04-1.61-.79-1.61H5.04c-.83 0-1.3.95-.79 1.61"
|
|
29
29
|
}), "FilterAlt"), mt = Se(/* @__PURE__ */ o("path", {
|
package/PollVote.js
CHANGED
package/Predictor.js
CHANGED
package/README.md
CHANGED
|
@@ -87,6 +87,12 @@ interface EventGamePlayCallbacks {
|
|
|
87
87
|
interface EitherOrPlayCallbacks {
|
|
88
88
|
onFinish?: (participation: EitherOrParticipationModel) => void;
|
|
89
89
|
}
|
|
90
|
+
|
|
91
|
+
// CompetitionStatistics — not only observers: setting onBroadcastClick is what shows the TV icon
|
|
92
|
+
interface CompetitionStatisticsCallbacks {
|
|
93
|
+
onBroadcastClick?: (matchId: string) => void;
|
|
94
|
+
onAddToBetslip?: (selection: { matchId: string; market: string; pick: "1" | "X" | "2"; odd: number }) => void;
|
|
95
|
+
}
|
|
90
96
|
```
|
|
91
97
|
|
|
92
98
|
### `onFinish`
|
|
@@ -5713,8 +5719,8 @@ A competitor profile card. It renders the competitor's identity, their season st
|
|
|
5713
5719
|
| `form` | `CompetitorFormConfig` | `maxItems` (default `5`, clamped 3–10) and `matchCTA` |
|
|
5714
5720
|
| `showFeaturedMatch` | `boolean` | Render the featured next/last fixture. Defaults to `true` |
|
|
5715
5721
|
| `featuredMatch` | `CompetitorFeaturedMatchConfig` | `type` (default `"next"`), `toggle` (default `true`), `backgroundGradient`, `matchCTA` |
|
|
5716
|
-
| `showOdds` | `boolean` | Render odds inside the featured match. Defaults to `
|
|
5717
|
-
| `odds` | `
|
|
5722
|
+
| `showOdds` | `boolean` | Render odds inside the featured match. Defaults to `false` |
|
|
5723
|
+
| `odds` | `OddsConfig` | `mode`, `flashInterval`, `pollingInterval`, `operators`, `affiliateId`, `affiliateIds` |
|
|
5718
5724
|
| `showFixtures` | `boolean` | Render the Fixtures header CTA and its panel. Defaults to `true` |
|
|
5719
5725
|
| `fixtures` | `CompetitorFixturesConfig` | `matchCTA` for fixture/result rows |
|
|
5720
5726
|
| `showSquad` | `boolean` | Render the Squad CTA and panel. Defaults to `true`. **Teams only** — inert on an athlete |
|
|
@@ -5786,7 +5792,7 @@ The card covers **one season** — the season its statistics are for. Feeds can
|
|
|
5786
5792
|
|
|
5787
5793
|
#### Betting Odds
|
|
5788
5794
|
|
|
5789
|
-
Outright prices for the upcoming featured match, from the first operator that has a complete set. The market follows the sport: a fixture that can be drawn is priced three ways (`FT_1X2` — 1 · X · 2), one that cannot is priced two (`WINNER_OT` — 1 · 2). Both are requested together, so one round trip settles it. When no operator has a complete market the strip simply does not render.
|
|
5795
|
+
Outright prices for the upcoming featured match, from the first operator that has a complete set. Off by default — pass `showOdds` to render them. The market follows the sport: a fixture that can be drawn is priced three ways (`FT_1X2` — 1 · X · 2), one that cannot is priced two (`WINNER_OT` — 1 · 2). Both are requested together, so one round trip settles it. When no operator has a complete market the strip simply does not render.
|
|
5790
5796
|
|
|
5791
5797
|
```tsx
|
|
5792
5798
|
odds={{
|
|
@@ -5809,6 +5815,7 @@ import { CompetitorCard, betslipApi } from "fansunited-frontend-components";
|
|
|
5809
5815
|
entityId="fb:t:8205"
|
|
5810
5816
|
sdk={sdkInstance}
|
|
5811
5817
|
language="en"
|
|
5818
|
+
showOdds
|
|
5812
5819
|
onAddToBetslip={({ matchId, market, pick }) =>
|
|
5813
5820
|
betslipApi.setSelection(`${matchId}:${market}:${pick}`)
|
|
5814
5821
|
}
|
|
@@ -5893,6 +5900,133 @@ import { CompetitorCard } from "fansunited-frontend-components";
|
|
|
5893
5900
|
/>
|
|
5894
5901
|
```
|
|
5895
5902
|
|
|
5903
|
+
### CompetitionStatistics
|
|
5904
|
+
|
|
5905
|
+
A competition's season on one page: a progress header, upcoming fixtures and results, player rankings, and season-wide statistics. All data comes from the Sports API's competition-by-id endpoint (the one `Standings` reads); names, crests, headshots and stage names come from the Search API in parallel batches of 100 ids.
|
|
5906
|
+
|
|
5907
|
+
**Key Features:**
|
|
5908
|
+
|
|
5909
|
+
- Upcoming / Results tabs with a round picker, matches grouped by day
|
|
5910
|
+
- Multi-stage competitions grouped by stage (regular season, championship / relegation groups, play-offs), with Standings-style stage pills
|
|
5911
|
+
- Expandable rows — a finished or live match shows its match stats and a goal timeline, an upcoming one both teams' form, a season comparison and the previous meeting
|
|
5912
|
+
- Live matches with a pulsing minute, the half-time score and polling through the event endpoint
|
|
5913
|
+
- Postponed, cancelled, interrupted and abandoned matches listed with the results, the reason in place of the score
|
|
5914
|
+
- Opt-in 1X2 odds on the match rows — the same strip and settings as `CompetitorCard`, in-play prices for a live match, one request per round
|
|
5915
|
+
- Player rankings: top scorers, assists, goals + assists, clean sheets, minutes, cards
|
|
5916
|
+
- Season statistics: result split, goal timing, goal lines, averages per match, cards, team callouts and record matches
|
|
5917
|
+
- Sections can be picked and reordered; an optional TV icon on upcoming matches, driven by your own callback
|
|
5918
|
+
|
|
5919
|
+
#### Required Props
|
|
5920
|
+
|
|
5921
|
+
| Prop | Type | Description |
|
|
5922
|
+
| ---------- | -------------------- | ------------------------------ |
|
|
5923
|
+
| `entityId` | `string` | Competition ID, e.g. `"fb:c:3"` |
|
|
5924
|
+
| `sdk` | `FansUnitedSDKModel` | SDK instance |
|
|
5925
|
+
| `language` | `LanguageType` | Display language |
|
|
5926
|
+
|
|
5927
|
+
#### Optional Props
|
|
5928
|
+
|
|
5929
|
+
| Prop | Type | Description |
|
|
5930
|
+
| ---------------------- | ---------------------------------------- | ----------- |
|
|
5931
|
+
| `themeOptions` | `CustomThemeOptions` | Theme configuration |
|
|
5932
|
+
| `seasonId` | `string` | Season override, e.g. `"fb:c:3:2026/27"`. Defaults to the current season |
|
|
5933
|
+
| `stageId` | `string` | Scope matches and team statistics to one stage. Defaults to every stage |
|
|
5934
|
+
| `sections` | `CompetitionStatisticsSection[]` | `"header"`, `"matches"`, `"players"`, `"season"` — rendered in the order given. Defaults to all four in that order |
|
|
5935
|
+
| `playerRankingsLayout` | `"auto" \| "grid" \| "tabs"` | `"auto"` (default) shows a grid of cards and switches to tabs in a container narrower than 600px |
|
|
5936
|
+
| `playerRankingsRows` | `number` | Rows per ranking before "Show all". Defaults to `5`; clamped to 1–10 |
|
|
5937
|
+
| `showOdds` | `boolean` | Show odds on upcoming and live match rows. Defaults to `false` |
|
|
5938
|
+
| `odds` | `OddsConfig` | `mode`, `flashInterval`, `pollingInterval`, `operators`, `affiliateId`, `affiliateIds` — as on `CompetitorCard` |
|
|
5939
|
+
| `callbacks` | `CompetitionStatisticsCallbacks` | `onAddToBetslip(selection)` and `onBroadcastClick(matchId)` |
|
|
5940
|
+
| `liveRefresh` | `boolean` | Poll live matches. Defaults to `true` |
|
|
5941
|
+
| `refreshInterval` | `number` | Live poll interval in ms. Defaults to `30000` |
|
|
5942
|
+
| `matchCTA` | `CompetitionStatisticsLinkCTA` | Where the two record-match cards link to |
|
|
5943
|
+
| `teamCTA` | `CompetitionStatisticsLinkCTA` | Where the team callouts link to |
|
|
5944
|
+
| `playerCTA` | `CompetitionStatisticsLinkCTA` | Where a player in the rankings links to |
|
|
5945
|
+
| `labels` | `CompetitionStatisticsLabels` | Overrides for any user-facing string |
|
|
5946
|
+
|
|
5947
|
+
#### Stages
|
|
5948
|
+
|
|
5949
|
+
In a competition with more than one stage, stage pills sit above the round picker and the rounds are the selected stage's own. The Upcoming tab opens on the stage of the next match, the Results tab on the stage of the latest one; a single-round stage (a final) shows no round picker, and a single-stage league shows neither. The payload tags few matches with their stage and one matchday can hold several groups, so each match is assigned to the stage whose standings list both teams and whose dates cover the kick-off, otherwise to the nearest stage by date.
|
|
5950
|
+
|
|
5951
|
+
#### Odds
|
|
5952
|
+
|
|
5953
|
+
Off by default. With `showOdds`, each upcoming match row shows 1X2 odds from the first operator with a complete market, and a live match shows in-play prices — pre-match prices are never shown on a match in progress. One request covers the round on screen. In a container narrower than 600px the odds move to a second line under the teams. `callbacks.onAddToBetslip` receives `{ matchId, market, pick, odd }`; the operator's own link still opens either way.
|
|
5954
|
+
|
|
5955
|
+
```tsx
|
|
5956
|
+
import { CompetitionStatistics, betslipApi } from "fansunited-frontend-components";
|
|
5957
|
+
|
|
5958
|
+
<CompetitionStatistics
|
|
5959
|
+
entityId="fb:c:3"
|
|
5960
|
+
sdk={sdkInstance}
|
|
5961
|
+
language="en"
|
|
5962
|
+
showOdds
|
|
5963
|
+
odds={{ operators: ["betano-bg"], affiliateId: "aff-123" }}
|
|
5964
|
+
callbacks={{
|
|
5965
|
+
onAddToBetslip: ({ matchId, market, pick }) =>
|
|
5966
|
+
betslipApi.setSelection(`${matchId}:${market}:${pick}`),
|
|
5967
|
+
}}
|
|
5968
|
+
/>;
|
|
5969
|
+
```
|
|
5970
|
+
|
|
5971
|
+
#### TV Broadcasts
|
|
5972
|
+
|
|
5973
|
+
The widget holds no broadcast data. Set `callbacks.onBroadcastClick` and every upcoming match shows a TV icon next to its kick-off time; a click calls the handler with the match id and does not expand the row. Which channel shows the match, and what the click opens, is yours to implement.
|
|
5974
|
+
|
|
5975
|
+
```tsx
|
|
5976
|
+
<CompetitionStatistics
|
|
5977
|
+
entityId="fb:c:3"
|
|
5978
|
+
sdk={sdkInstance}
|
|
5979
|
+
language="en"
|
|
5980
|
+
callbacks={{ onBroadcastClick: (matchId) => openTvSchedule(matchId) }}
|
|
5981
|
+
/>
|
|
5982
|
+
```
|
|
5983
|
+
|
|
5984
|
+
#### Link CTAs
|
|
5985
|
+
|
|
5986
|
+
```ts
|
|
5987
|
+
interface CompetitionStatisticsLinkCTA {
|
|
5988
|
+
onClick?: (id: string) => void;
|
|
5989
|
+
url?: string | null;
|
|
5990
|
+
target?: LinkTargetType;
|
|
5991
|
+
}
|
|
5992
|
+
```
|
|
5993
|
+
|
|
5994
|
+
`url` is a template: `{id}` — or `{matchId}` / `{competitorId}` / `{athleteId}` on the matching CTA — is replaced with the URL-encoded id. With `onClick` the handler receives the id and navigation is prevented. Without either, the cards stay inert.
|
|
5995
|
+
|
|
5996
|
+
#### Examples
|
|
5997
|
+
|
|
5998
|
+
##### Basic
|
|
5999
|
+
|
|
6000
|
+
```tsx
|
|
6001
|
+
import { CompetitionStatistics } from "fansunited-frontend-components";
|
|
6002
|
+
|
|
6003
|
+
<CompetitionStatistics entityId="fb:c:3" sdk={sdkInstance} language="en" />;
|
|
6004
|
+
```
|
|
6005
|
+
|
|
6006
|
+
##### Fixtures only
|
|
6007
|
+
|
|
6008
|
+
```tsx
|
|
6009
|
+
<CompetitionStatistics
|
|
6010
|
+
entityId="fb:c:3"
|
|
6011
|
+
sdk={sdkInstance}
|
|
6012
|
+
language="en"
|
|
6013
|
+
sections={["header", "matches"]}
|
|
6014
|
+
/>
|
|
6015
|
+
```
|
|
6016
|
+
|
|
6017
|
+
##### Season statistics first, linked rankings
|
|
6018
|
+
|
|
6019
|
+
```tsx
|
|
6020
|
+
<CompetitionStatistics
|
|
6021
|
+
entityId="fb:c:1"
|
|
6022
|
+
sdk={sdkInstance}
|
|
6023
|
+
language="bg"
|
|
6024
|
+
sections={["season", "players", "matches"]}
|
|
6025
|
+
teamCTA={{ url: "/teams/{competitorId}" }}
|
|
6026
|
+
playerCTA={{ url: "/players/{athleteId}" }}
|
|
6027
|
+
/>
|
|
6028
|
+
```
|
|
6029
|
+
|
|
5896
6030
|
---
|
|
5897
6031
|
|
|
5898
6032
|
## Available Components
|
|
@@ -5916,6 +6050,7 @@ This package exports the following components:
|
|
|
5916
6050
|
- **`EventCard`** - Single-event card with compact/standard/hero templates, team + tennis scoring, sport-aware status labels, live auto-refresh, and optional detail tabs (form, timeline, stats, lineups, standings, head-to-head)
|
|
5917
6051
|
- **`PlayerOfTheMatch`** - Coverflow voting carousel with search, position filters, a roster rail, live voting status, and winner/tied-winners results
|
|
5918
6052
|
- **`CompetitorCard`** - Team or athlete profile card with four templates, season statistics and a competition switcher, recent form, next/last fixture with odds and a live badge, and inline Fixtures, Squad and Season stats panels
|
|
6053
|
+
- **`CompetitionStatistics`** - A competition's season on one page: fixtures and results by stage and round with live scores and odds, expandable match detail, player rankings, and season statistics
|
|
5919
6054
|
|
|
5920
6055
|
## Related Packages
|
|
5921
6056
|
|