@agg-market/ui 3.0.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chart.js +18 -5
- package/dist/chart.mjs +2 -2
- package/dist/{chunk-KUWTY4EM.mjs → chunk-3W7NBJLU.mjs} +1 -1
- package/dist/{chunk-MVJNQN7P.mjs → chunk-GNSPZ53C.mjs} +86 -85
- package/dist/{chunk-422MCIXV.mjs → chunk-HOXTJ742.mjs} +15 -11
- package/dist/{chunk-FF3QYU26.mjs → chunk-JNH64AKR.mjs} +31 -24
- package/dist/{chunk-RKCVOKE3.mjs → chunk-LA3FBBSJ.mjs} +2 -2
- package/dist/{chunk-CTVMT3VL.mjs → chunk-LCZKSITC.mjs} +2 -2
- package/dist/chunk-M4RJHRFT.mjs +445 -0
- package/dist/{chunk-RGHA4PZH.mjs → chunk-MBHTXNHX.mjs} +4 -4
- package/dist/{chunk-KSCSYCEF.mjs → chunk-MJHKBCXQ.mjs} +1 -1
- package/dist/{chunk-KRQFVMJE.mjs → chunk-OH56VUYK.mjs} +5 -19
- package/dist/{chunk-BN5VVHNV.mjs → chunk-OJVTGNIF.mjs} +17 -4
- package/dist/{chunk-ZJJA4I3I.mjs → chunk-P2PJBO5C.mjs} +1 -1
- package/dist/{chunk-GHB3GOCW.mjs → chunk-QM7CGMFG.mjs} +5 -21
- package/dist/event-list-item-details.js +213 -241
- package/dist/event-list-item-details.mjs +6 -6
- package/dist/event-list-item.js +156 -208
- package/dist/event-list-item.mjs +3 -3
- package/dist/event-list.js +159 -223
- package/dist/event-list.mjs +4 -4
- package/dist/event-market-page.js +476 -574
- package/dist/event-market-page.mjs +10 -11
- package/dist/home-page.js +159 -223
- package/dist/home-page.mjs +5 -5
- package/dist/index.js +296 -333
- package/dist/index.mjs +13 -13
- package/dist/market-details.js +323 -415
- package/dist/market-details.mjs +6 -7
- package/dist/place-order.js +151 -189
- package/dist/place-order.mjs +2 -2
- package/dist/settlement.js +151 -189
- package/dist/settlement.mjs +2 -2
- package/dist/skeleton.js +151 -189
- package/dist/skeleton.mjs +1 -1
- package/dist/styles.css +1 -1
- package/dist/switch-button.js +2 -2
- package/dist/switch-button.mjs +1 -1
- package/dist/tailwind.css +1 -1
- package/package.json +2 -2
- package/dist/chunk-V52WSZHQ.mjs +0 -482
package/dist/chart.js
CHANGED
|
@@ -122,10 +122,10 @@ var SwitchButton = ({
|
|
|
122
122
|
return null;
|
|
123
123
|
}
|
|
124
124
|
const handleKeyDown = (event, optionIndex) => {
|
|
125
|
-
if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") {
|
|
125
|
+
if ((event == null ? void 0 : event.key) !== "ArrowLeft" && (event == null ? void 0 : event.key) !== "ArrowRight") {
|
|
126
126
|
return;
|
|
127
127
|
}
|
|
128
|
-
event.preventDefault();
|
|
128
|
+
event == null ? void 0 : event.preventDefault();
|
|
129
129
|
const nextOptionIndex = resolveNextEnabledIndex(
|
|
130
130
|
options,
|
|
131
131
|
optionIndex,
|
|
@@ -242,8 +242,18 @@ var normalizeSeries = (series) => {
|
|
|
242
242
|
var defaultValueFormatter = (value) => {
|
|
243
243
|
return `${Math.round(value)}%`;
|
|
244
244
|
};
|
|
245
|
-
var
|
|
246
|
-
return
|
|
245
|
+
var resolveTimeFormatter = (windowSeconds) => {
|
|
246
|
+
return (timestamp) => {
|
|
247
|
+
if (!Number.isFinite(timestamp))
|
|
248
|
+
return "";
|
|
249
|
+
if (windowSeconds <= 48 * 60 * 60) {
|
|
250
|
+
return import_dayjs.default.unix(timestamp).format("HH:mm");
|
|
251
|
+
}
|
|
252
|
+
if (windowSeconds <= 14 * 24 * 60 * 60) {
|
|
253
|
+
return import_dayjs.default.unix(timestamp).format("MMM D HH:mm");
|
|
254
|
+
}
|
|
255
|
+
return import_dayjs.default.unix(timestamp).format("MMM D");
|
|
256
|
+
};
|
|
247
257
|
};
|
|
248
258
|
var toLivelinePoints = (points) => {
|
|
249
259
|
return points.map((point) => ({
|
|
@@ -366,6 +376,9 @@ var LineChart = ({
|
|
|
366
376
|
const windowSeconds = (0, import_react2.useMemo)(() => {
|
|
367
377
|
return resolveWindowSeconds(normalizedSeries);
|
|
368
378
|
}, [normalizedSeries]);
|
|
379
|
+
const timeFormatter = (0, import_react2.useMemo)(() => {
|
|
380
|
+
return resolveTimeFormatter(windowSeconds);
|
|
381
|
+
}, [windowSeconds]);
|
|
369
382
|
const seriesControls = showSeriesControls && normalizedSeries.length > 0 ? (_a = renderSeriesControls == null ? void 0 : renderSeriesControls({
|
|
370
383
|
series: normalizedSeries,
|
|
371
384
|
activeSeriesId,
|
|
@@ -404,7 +417,7 @@ var LineChart = ({
|
|
|
404
417
|
pulse: false,
|
|
405
418
|
window: windowSeconds,
|
|
406
419
|
formatValue: defaultValueFormatter,
|
|
407
|
-
formatTime:
|
|
420
|
+
formatTime: timeFormatter,
|
|
408
421
|
padding: {
|
|
409
422
|
top: 12,
|
|
410
423
|
right: 80,
|
package/dist/chart.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
resolveOutcomeLabels,
|
|
5
5
|
resolveOutcomesByVenue,
|
|
6
6
|
resolveSeriesColor
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-HOXTJ742.mjs";
|
|
8
8
|
import {
|
|
9
9
|
Tabs
|
|
10
10
|
} from "./chunk-S3H63TQ5.mjs";
|
|
@@ -14,18 +14,16 @@ import {
|
|
|
14
14
|
resolveTileImage,
|
|
15
15
|
resolveTileTitle,
|
|
16
16
|
selectPrimaryVenueMarket
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-QM7CGMFG.mjs";
|
|
18
18
|
import {
|
|
19
|
+
MarketDetailsOderbookSkeleton,
|
|
19
20
|
Skeleton,
|
|
20
21
|
eventListItemDetailsTimeRanges,
|
|
21
22
|
getMarketDetailsTabs,
|
|
22
23
|
marketDetailsBaseCardClassName,
|
|
23
24
|
marketDetailsDefaultIsOpened,
|
|
24
25
|
orderBookRowLimitDefault
|
|
25
|
-
} from "./chunk-
|
|
26
|
-
import {
|
|
27
|
-
LoadingIcon
|
|
28
|
-
} from "./chunk-IGPNIM2B.mjs";
|
|
26
|
+
} from "./chunk-M4RJHRFT.mjs";
|
|
29
27
|
import {
|
|
30
28
|
VenueLogo
|
|
31
29
|
} from "./chunk-PORVP72S.mjs";
|
|
@@ -37,10 +35,10 @@ import {
|
|
|
37
35
|
} from "./chunk-FO2QCB4Z.mjs";
|
|
38
36
|
import {
|
|
39
37
|
LineChart
|
|
40
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-OJVTGNIF.mjs";
|
|
41
39
|
import {
|
|
42
40
|
SwitchButton
|
|
43
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-LCZKSITC.mjs";
|
|
44
42
|
import {
|
|
45
43
|
__spreadProps,
|
|
46
44
|
__spreadValues,
|
|
@@ -182,8 +180,7 @@ var resolveSubtitle = ({
|
|
|
182
180
|
};
|
|
183
181
|
var resolveOrderBookRows = ({
|
|
184
182
|
data,
|
|
185
|
-
side
|
|
186
|
-
depth
|
|
183
|
+
side
|
|
187
184
|
}) => {
|
|
188
185
|
if (!(data == null ? void 0 : data.length))
|
|
189
186
|
return [];
|
|
@@ -214,9 +211,8 @@ var resolveOrderBookRows = ({
|
|
|
214
211
|
return left.price - right.price;
|
|
215
212
|
return right.price - left.price;
|
|
216
213
|
});
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
return limitedRows.map((row) => __spreadProps(__spreadValues({}, row), {
|
|
214
|
+
const maxTotal = sortedRows.reduce((currentMax, row) => Math.max(currentMax, row.total), 0) || 1;
|
|
215
|
+
return sortedRows.map((row) => __spreadProps(__spreadValues({}, row), {
|
|
220
216
|
barScale: row.total / maxTotal
|
|
221
217
|
}));
|
|
222
218
|
};
|
|
@@ -329,44 +325,59 @@ var OrderBookRows = ({
|
|
|
329
325
|
rows,
|
|
330
326
|
title,
|
|
331
327
|
formatNumber,
|
|
332
|
-
formatCurrency
|
|
328
|
+
formatCurrency,
|
|
329
|
+
visibleRows
|
|
333
330
|
}) => {
|
|
334
331
|
const labels = useLabels();
|
|
335
332
|
const isAsks = title === labels.marketDetails.asks;
|
|
336
333
|
const priceClassName = isAsks ? "text-agg-orderbook-ask" : "text-agg-orderbook-bid";
|
|
337
334
|
const barClassName = isAsks ? "bg-agg-orderbook-ask/10" : "bg-agg-orderbook-bid/10";
|
|
335
|
+
const maxVisibleRows = Math.max(1, visibleRows);
|
|
336
|
+
const orderBookRowHeightPx = 28;
|
|
337
|
+
const orderBookDividerHeightPx = 1;
|
|
338
|
+
const orderBookRowGapPx = 8;
|
|
339
|
+
const orderBookVisibleHeightPx = maxVisibleRows * orderBookRowHeightPx + Math.max(0, maxVisibleRows - 1) * (orderBookDividerHeightPx + orderBookRowGapPx);
|
|
338
340
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
339
341
|
/* @__PURE__ */ jsx(Typography, { variant: "caption-caps", children: title }),
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
),
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
342
|
+
/* @__PURE__ */ jsx(
|
|
343
|
+
"div",
|
|
344
|
+
{
|
|
345
|
+
className: "overflow-y-auto pr-1 flex flex-col gap-2",
|
|
346
|
+
style: { maxHeight: `${orderBookVisibleHeightPx}px` },
|
|
347
|
+
role: "region",
|
|
348
|
+
"aria-label": `${title} order book levels`,
|
|
349
|
+
children: rows.map((row, index) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
350
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[52px_1fr_1fr_52px] items-center gap-2 md:grid-cols-[88px_1fr_1fr_minmax(120px,220px)] md:gap-6", children: [
|
|
351
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 md:gap-3", children: [
|
|
352
|
+
/* @__PURE__ */ jsx(VenueLogo, { venue: row.venue, size: "small" }),
|
|
353
|
+
/* @__PURE__ */ jsx(
|
|
354
|
+
"span",
|
|
355
|
+
{
|
|
356
|
+
className: cn(
|
|
357
|
+
"text-agg-xs font-agg-bold leading-agg-4 md:text-agg-sm md:leading-agg-5",
|
|
358
|
+
priceClassName
|
|
359
|
+
),
|
|
360
|
+
children: formatProbabilityCents(row.price)
|
|
361
|
+
}
|
|
362
|
+
)
|
|
363
|
+
] }),
|
|
364
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-agg-xs leading-agg-4 text-center text-agg-foreground md:text-agg-sm md:leading-agg-5", children: formatNumber(row.size) }),
|
|
365
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-agg-xs leading-agg-4 text-center text-agg-foreground md:text-agg-sm md:leading-agg-5", children: formatCurrency(row.total) }),
|
|
366
|
+
/* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx(
|
|
367
|
+
"div",
|
|
368
|
+
{
|
|
369
|
+
"aria-hidden": "true",
|
|
370
|
+
className: cn("h-2 rounded-agg-full", barClassName),
|
|
371
|
+
style: {
|
|
372
|
+
width: `${Math.max(20, Math.round(row.barScale * 100))}%`
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
) })
|
|
376
|
+
] }),
|
|
377
|
+
index < rows.length - 1 ? /* @__PURE__ */ jsx("div", { className: "h-px w-full bg-agg-separator" }) : null
|
|
378
|
+
] }, row.id))
|
|
379
|
+
}
|
|
380
|
+
)
|
|
370
381
|
] });
|
|
371
382
|
};
|
|
372
383
|
var getOutcomeButtonClassName = ({
|
|
@@ -484,9 +495,10 @@ var MarketDetailsContent = ({
|
|
|
484
495
|
});
|
|
485
496
|
return [...uniqueOutcomesByVenueAndId.values()];
|
|
486
497
|
}, [outcomesByLabel]);
|
|
498
|
+
const canonicalMarketIdForHistory = model == null ? void 0 : model.market.id;
|
|
487
499
|
const priceHistoryGroups = useMemo(() => {
|
|
488
|
-
return buildPriceHistoryGroups(graphOutcomes);
|
|
489
|
-
}, [graphOutcomes]);
|
|
500
|
+
return buildPriceHistoryGroups(graphOutcomes, canonicalMarketIdForHistory);
|
|
501
|
+
}, [canonicalMarketIdForHistory, graphOutcomes]);
|
|
490
502
|
const { data: priceHistoryData, isLoading: isPriceHistoryLoading } = usePriceHistory(__spreadProps(__spreadValues({
|
|
491
503
|
groups: priceHistoryGroups
|
|
492
504
|
}, timeWindow), {
|
|
@@ -506,17 +518,15 @@ var MarketDetailsContent = ({
|
|
|
506
518
|
const askRows = useMemo(() => {
|
|
507
519
|
return resolveOrderBookRows({
|
|
508
520
|
data: orderBookData,
|
|
509
|
-
side: "asks"
|
|
510
|
-
depth: orderBookDepth
|
|
521
|
+
side: "asks"
|
|
511
522
|
});
|
|
512
|
-
}, [orderBookData
|
|
523
|
+
}, [orderBookData]);
|
|
513
524
|
const bidRows = useMemo(() => {
|
|
514
525
|
return resolveOrderBookRows({
|
|
515
526
|
data: orderBookData,
|
|
516
|
-
side: "bids"
|
|
517
|
-
depth: orderBookDepth
|
|
527
|
+
side: "bids"
|
|
518
528
|
});
|
|
519
|
-
}, [orderBookData
|
|
529
|
+
}, [orderBookData]);
|
|
520
530
|
const priceHistoryByVenue = useMemo(() => {
|
|
521
531
|
const historyByVenue = /* @__PURE__ */ new Map();
|
|
522
532
|
if (!(priceHistoryData == null ? void 0 : priceHistoryData.length)) {
|
|
@@ -536,11 +546,14 @@ var MarketDetailsContent = ({
|
|
|
536
546
|
const graphSeriesByOutcomeLabel = useMemo(() => {
|
|
537
547
|
const seriesByOutcomeLabel = /* @__PURE__ */ new Map();
|
|
538
548
|
const resolveOutcomeCandidateIds = (outcomeByVenue) => {
|
|
539
|
-
var _a;
|
|
549
|
+
var _a, _b;
|
|
550
|
+
const marketWithCanonicalId = outcomeByVenue.market;
|
|
540
551
|
return [
|
|
541
552
|
outcomeByVenue.outcome.id,
|
|
542
553
|
(_a = outcomeByVenue.outcome.externalIdentifier) != null ? _a : void 0,
|
|
543
|
-
outcomeByVenue.market.externalIdentifier
|
|
554
|
+
outcomeByVenue.market.externalIdentifier,
|
|
555
|
+
(_b = marketWithCanonicalId.marketId) != null ? _b : void 0,
|
|
556
|
+
canonicalMarketIdForHistory
|
|
544
557
|
].filter((value) => typeof value === "string" && value.trim().length > 0);
|
|
545
558
|
};
|
|
546
559
|
headerOutcomeItems.forEach((headerOutcomeItem) => {
|
|
@@ -572,7 +585,7 @@ var MarketDetailsContent = ({
|
|
|
572
585
|
seriesByOutcomeLabel.set(headerOutcomeItem.label, graphSeries2);
|
|
573
586
|
});
|
|
574
587
|
return seriesByOutcomeLabel;
|
|
575
|
-
}, [headerOutcomeItems, outcomesByLabel, priceHistoryByVenue]);
|
|
588
|
+
}, [canonicalMarketIdForHistory, headerOutcomeItems, outcomesByLabel, priceHistoryByVenue]);
|
|
576
589
|
const graphSeries = useMemo(() => {
|
|
577
590
|
var _a;
|
|
578
591
|
if (!selectedOutcomeLabel)
|
|
@@ -636,28 +649,29 @@ var MarketDetailsContent = ({
|
|
|
636
649
|
Card,
|
|
637
650
|
{
|
|
638
651
|
className: cn(
|
|
639
|
-
"w-full
|
|
652
|
+
"w-full rounded-agg-2xl text-left outline-none",
|
|
640
653
|
marketDetailsBaseCardClassName,
|
|
641
654
|
classNames == null ? void 0 : classNames.root
|
|
642
655
|
),
|
|
643
|
-
"aria-expanded": isOpened,
|
|
644
|
-
"aria-controls": detailsContentId,
|
|
645
|
-
role: "button",
|
|
646
|
-
tabIndex: 0,
|
|
647
|
-
"aria-label": isOpened ? labels.marketDetails.toggleCloseDetailsAria(model.title) : labels.marketDetails.toggleOpenDetailsAria(model.title),
|
|
648
|
-
onClick: handleToggleExpanded,
|
|
649
|
-
onKeyDown: handleToggleExpanded,
|
|
650
656
|
children: [
|
|
651
657
|
/* @__PURE__ */ jsxs(
|
|
652
658
|
"div",
|
|
653
659
|
{
|
|
654
660
|
className: cn(
|
|
655
|
-
"
|
|
661
|
+
"cursor-pointer disabled:cursor-default",
|
|
662
|
+
"flex flex-wrap flex-row items-center justify-between gap-3 px-5 py-4",
|
|
656
663
|
isOpened && "pb-3",
|
|
657
664
|
classNames == null ? void 0 : classNames.header
|
|
658
665
|
),
|
|
666
|
+
"aria-expanded": isOpened,
|
|
667
|
+
"aria-controls": detailsContentId,
|
|
668
|
+
role: "button",
|
|
669
|
+
tabIndex: 0,
|
|
670
|
+
"aria-label": isOpened ? labels.marketDetails.toggleCloseDetailsAria(model.title) : labels.marketDetails.toggleOpenDetailsAria(model.title),
|
|
671
|
+
onClick: handleToggleExpanded,
|
|
672
|
+
onKeyDown: handleToggleExpanded,
|
|
659
673
|
children: [
|
|
660
|
-
/* @__PURE__ */ jsxs("div", { className: "flex min-w-
|
|
674
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-52 items-center gap-3 md:gap-4", children: [
|
|
661
675
|
model.image ? /* @__PURE__ */ jsx(
|
|
662
676
|
"img",
|
|
663
677
|
{
|
|
@@ -736,10 +750,7 @@ var MarketDetailsContent = ({
|
|
|
736
750
|
id: detailsContentId,
|
|
737
751
|
className: cn(
|
|
738
752
|
"grid overflow-hidden",
|
|
739
|
-
getMotionClassName(
|
|
740
|
-
config.enableAnimations,
|
|
741
|
-
"transition-all duration-500 ease-[cubic-bezier(0.4,0,0.2,1)]"
|
|
742
|
-
),
|
|
753
|
+
getMotionClassName(config.enableAnimations, "transition-all duration-500 ease-in-out"),
|
|
743
754
|
isOpened ? "grid-rows-[1fr] opacity-100" : "pointer-events-none grid-rows-[0fr] opacity-0"
|
|
744
755
|
),
|
|
745
756
|
"aria-hidden": !isOpened,
|
|
@@ -751,7 +762,7 @@ var MarketDetailsContent = ({
|
|
|
751
762
|
className: cn(
|
|
752
763
|
getMotionClassName(
|
|
753
764
|
config.enableAnimations,
|
|
754
|
-
"transition-all duration-500 ease-
|
|
765
|
+
"transition-all duration-500 ease-in-out"
|
|
755
766
|
),
|
|
756
767
|
isOpened ? cn(
|
|
757
768
|
"translate-y-0 opacity-100",
|
|
@@ -772,26 +783,15 @@ var MarketDetailsContent = ({
|
|
|
772
783
|
) }),
|
|
773
784
|
/* @__PURE__ */ jsx("div", { className: "h-px w-full bg-agg-separator" }),
|
|
774
785
|
/* @__PURE__ */ jsxs("div", { className: cn("p-5", classNames == null ? void 0 : classNames.content), children: [
|
|
775
|
-
selectedTab === "order-book" ? /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-5", classNames == null ? void 0 : classNames.orderBook), children: isOrderBookLoading ? /* @__PURE__ */ jsxs(
|
|
776
|
-
"div",
|
|
777
|
-
{
|
|
778
|
-
className: "flex flex-col gap-2 min-h-40 items-center justify-center",
|
|
779
|
-
role: "status",
|
|
780
|
-
"aria-label": labels.marketDetails.loadingOrderbookAria,
|
|
781
|
-
"aria-busy": true,
|
|
782
|
-
children: [
|
|
783
|
-
/* @__PURE__ */ jsx(LoadingIcon, {}),
|
|
784
|
-
/* @__PURE__ */ jsx(Typography, { variant: "label", className: "text-agg-muted-foreground", children: labels.marketDetails.loadingOrderbookLabel })
|
|
785
|
-
]
|
|
786
|
-
}
|
|
787
|
-
) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
786
|
+
selectedTab === "order-book" ? /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-5", classNames == null ? void 0 : classNames.orderBook), children: isOrderBookLoading ? /* @__PURE__ */ jsx(MarketDetailsOderbookSkeleton, {}) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
788
787
|
/* @__PURE__ */ jsx(
|
|
789
788
|
OrderBookRows,
|
|
790
789
|
{
|
|
791
790
|
rows: askRows,
|
|
792
791
|
title: labels.marketDetails.asks,
|
|
793
792
|
formatNumber: config.formatNumber,
|
|
794
|
-
formatCurrency: config.formatCurrency
|
|
793
|
+
formatCurrency: config.formatCurrency,
|
|
794
|
+
visibleRows: orderBookDepth
|
|
795
795
|
}
|
|
796
796
|
),
|
|
797
797
|
/* @__PURE__ */ jsx(
|
|
@@ -800,7 +800,8 @@ var MarketDetailsContent = ({
|
|
|
800
800
|
rows: bidRows,
|
|
801
801
|
title: labels.marketDetails.bids,
|
|
802
802
|
formatNumber: config.formatNumber,
|
|
803
|
-
formatCurrency: config.formatCurrency
|
|
803
|
+
formatCurrency: config.formatCurrency,
|
|
804
|
+
visibleRows: orderBookDepth
|
|
804
805
|
}
|
|
805
806
|
)
|
|
806
807
|
] }) }) : null,
|
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
resolveOutcomeTitle,
|
|
3
3
|
selectPrimaryVenueMarket,
|
|
4
4
|
sortOutcomes
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-QM7CGMFG.mjs";
|
|
6
6
|
import {
|
|
7
7
|
fallbackLineColors,
|
|
8
8
|
lineColorByVenue
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-M4RJHRFT.mjs";
|
|
10
10
|
|
|
11
11
|
// src/events/item-details/event-list-item-details.utils.ts
|
|
12
12
|
import dayjs from "dayjs";
|
|
@@ -107,18 +107,22 @@ var resolveOutcomesByVenue = (venueMarkets, selectedOutcomeLabel) => {
|
|
|
107
107
|
};
|
|
108
108
|
}).filter((item) => item != null);
|
|
109
109
|
};
|
|
110
|
-
var buildPriceHistoryGroups = (selectedOutcomes) => {
|
|
111
|
-
const
|
|
112
|
-
selectedOutcomes.forEach(({ venue,
|
|
113
|
-
var _a;
|
|
114
|
-
|
|
115
|
-
|
|
110
|
+
var buildPriceHistoryGroups = (selectedOutcomes, fallbackMarketId) => {
|
|
111
|
+
const marketIdByVenue = /* @__PURE__ */ new Map();
|
|
112
|
+
selectedOutcomes.forEach(({ venue, market }) => {
|
|
113
|
+
var _a, _b;
|
|
114
|
+
const marketWithCanonicalId = market;
|
|
115
|
+
const canonicalMarketId = (_a = marketWithCanonicalId.marketId) != null ? _a : fallbackMarketId;
|
|
116
|
+
if (!canonicalMarketId)
|
|
117
|
+
return;
|
|
118
|
+
if (!marketIdByVenue.has(venue)) {
|
|
119
|
+
marketIdByVenue.set(venue, /* @__PURE__ */ new Set());
|
|
116
120
|
}
|
|
117
|
-
(
|
|
121
|
+
(_b = marketIdByVenue.get(venue)) == null ? void 0 : _b.add(canonicalMarketId);
|
|
118
122
|
});
|
|
119
|
-
return [...
|
|
123
|
+
return [...marketIdByVenue.entries()].map(([venue, marketIds]) => ({
|
|
120
124
|
venue,
|
|
121
|
-
venueMarketOutcomeIds
|
|
125
|
+
venueMarketOutcomeIds: [...marketIds]
|
|
122
126
|
})).filter((group) => group.venueMarketOutcomeIds.length > 0);
|
|
123
127
|
};
|
|
124
128
|
var resolveSeriesColor = (venue, index) => {
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
resolveOutcomeLabels,
|
|
9
9
|
resolveOutcomesByVenue,
|
|
10
10
|
resolveSeriesColor
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-HOXTJ742.mjs";
|
|
12
12
|
import {
|
|
13
13
|
normalizeProbability,
|
|
14
14
|
resolveEventListItemEvent,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
resolveTileTitle,
|
|
17
17
|
resolveVenueLabel,
|
|
18
18
|
selectPrimaryVenueMarket
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-QM7CGMFG.mjs";
|
|
20
20
|
import {
|
|
21
21
|
Badge
|
|
22
22
|
} from "./chunk-K6IJ4WBM.mjs";
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
Skeleton,
|
|
25
25
|
detailsBaseCardClassName,
|
|
26
26
|
eventListItemDetailsTimeRanges
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-M4RJHRFT.mjs";
|
|
28
28
|
import {
|
|
29
29
|
VenueLogo
|
|
30
30
|
} from "./chunk-PORVP72S.mjs";
|
|
@@ -39,10 +39,10 @@ import {
|
|
|
39
39
|
} from "./chunk-FO2QCB4Z.mjs";
|
|
40
40
|
import {
|
|
41
41
|
LineChart
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-OJVTGNIF.mjs";
|
|
43
43
|
import {
|
|
44
44
|
SwitchButton
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-LCZKSITC.mjs";
|
|
46
46
|
import {
|
|
47
47
|
__objRest,
|
|
48
48
|
__spreadProps,
|
|
@@ -101,13 +101,18 @@ var resolveAverageProbability = (values) => {
|
|
|
101
101
|
return validValues.reduce((sum, value) => sum + value, 0) / validValues.length;
|
|
102
102
|
};
|
|
103
103
|
var resolveOutcomeCandidateIds = (market, outcome) => {
|
|
104
|
-
var _a;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
104
|
+
var _a, _b;
|
|
105
|
+
const marketWithCanonicalId = market;
|
|
106
|
+
return [
|
|
107
|
+
outcome.id,
|
|
108
|
+
(_a = outcome.externalIdentifier) != null ? _a : void 0,
|
|
109
|
+
market.externalIdentifier,
|
|
110
|
+
(_b = marketWithCanonicalId.marketId) != null ? _b : void 0
|
|
111
|
+
].filter((value) => typeof value === "string" && value.trim().length > 0);
|
|
108
112
|
};
|
|
109
113
|
var EventListItemDetailsGraphSection = ({
|
|
110
114
|
venueMarkets,
|
|
115
|
+
canonicalMarketId,
|
|
111
116
|
selectedOutcomeLabel,
|
|
112
117
|
onSelectedOutcomeLabelChange,
|
|
113
118
|
switchLabels,
|
|
@@ -200,8 +205,8 @@ var EventListItemDetailsGraphSection = ({
|
|
|
200
205
|
return [...outcomeByModeAndId.values()];
|
|
201
206
|
}, [selectedOutcomesByMode]);
|
|
202
207
|
const priceHistoryGroups = useMemo(() => {
|
|
203
|
-
return buildPriceHistoryGroups(allOutcomesForHistory);
|
|
204
|
-
}, [allOutcomesForHistory]);
|
|
208
|
+
return buildPriceHistoryGroups(allOutcomesForHistory, canonicalMarketId);
|
|
209
|
+
}, [allOutcomesForHistory, canonicalMarketId]);
|
|
205
210
|
const timeWindow = useMemo(() => {
|
|
206
211
|
return getTimeWindowByRange(selectedTimeRange);
|
|
207
212
|
}, [selectedTimeRange]);
|
|
@@ -405,11 +410,12 @@ var EventListItemDetailsContent = ({
|
|
|
405
410
|
ariaLabel,
|
|
406
411
|
defaultTimeRange
|
|
407
412
|
}) => {
|
|
413
|
+
var _a, _b;
|
|
408
414
|
const config = useSdkUiConfig();
|
|
409
415
|
const labels = useLabels();
|
|
410
416
|
const venueMarkets = useMemo(() => {
|
|
411
|
-
var
|
|
412
|
-
return (_c = (
|
|
417
|
+
var _a2, _b2, _c;
|
|
418
|
+
return (_c = (_b2 = (_a2 = event.markets) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.venueMarkets) != null ? _c : [];
|
|
413
419
|
}, [event.markets]);
|
|
414
420
|
const primaryVenueMarket = useMemo(() => {
|
|
415
421
|
return selectPrimaryVenueMarket(venueMarkets);
|
|
@@ -447,9 +453,9 @@ var EventListItemDetailsContent = ({
|
|
|
447
453
|
if (outcomeLabels.length === 0)
|
|
448
454
|
return void 0;
|
|
449
455
|
return [...outcomeLabels].sort((left, right) => {
|
|
450
|
-
var
|
|
451
|
-
const leftProbability = (
|
|
452
|
-
const rightProbability = (
|
|
456
|
+
var _a2, _b2;
|
|
457
|
+
const leftProbability = (_a2 = probabilityByLabel.get(left)) != null ? _a2 : -1;
|
|
458
|
+
const rightProbability = (_b2 = probabilityByLabel.get(right)) != null ? _b2 : -1;
|
|
453
459
|
return rightProbability - leftProbability;
|
|
454
460
|
})[0];
|
|
455
461
|
}, [outcomeLabels, probabilityByLabel]);
|
|
@@ -465,18 +471,18 @@ var EventListItemDetailsContent = ({
|
|
|
465
471
|
setSelectedOutcomeLabel(fallbackOutcomeLabel);
|
|
466
472
|
}, [isDateOutcomeMarket, mainOutcomeLabel, outcomeLabels, selectedOutcomeLabel]);
|
|
467
473
|
const switchLabels = useMemo(() => {
|
|
468
|
-
var
|
|
474
|
+
var _a2, _b2;
|
|
469
475
|
if (isDateOutcomeMarket) {
|
|
470
476
|
return [labels.eventItemDetails.yes, labels.eventItemDetails.no];
|
|
471
477
|
}
|
|
472
478
|
const sortedOutcomeLabels = [...outcomeLabels].sort((left, right) => {
|
|
473
|
-
var
|
|
474
|
-
const leftProbability = (
|
|
475
|
-
const rightProbability = (
|
|
479
|
+
var _a3, _b3;
|
|
480
|
+
const leftProbability = (_a3 = probabilityByLabel.get(left)) != null ? _a3 : -1;
|
|
481
|
+
const rightProbability = (_b3 = probabilityByLabel.get(right)) != null ? _b3 : -1;
|
|
476
482
|
return rightProbability - leftProbability;
|
|
477
483
|
});
|
|
478
|
-
const firstLabel = (
|
|
479
|
-
const secondLabel = (
|
|
484
|
+
const firstLabel = (_a2 = sortedOutcomeLabels[0]) != null ? _a2 : labels.eventItemDetails.yes;
|
|
485
|
+
const secondLabel = (_b2 = sortedOutcomeLabels.find((label) => label !== firstLabel)) != null ? _b2 : firstLabel;
|
|
480
486
|
return [firstLabel, secondLabel];
|
|
481
487
|
}, [
|
|
482
488
|
isDateOutcomeMarket,
|
|
@@ -486,8 +492,8 @@ var EventListItemDetailsContent = ({
|
|
|
486
492
|
probabilityByLabel
|
|
487
493
|
]);
|
|
488
494
|
const volumeLabel = useMemo(() => {
|
|
489
|
-
var
|
|
490
|
-
const resolvedVolume = typeof event.volume === "number" ? event.volume : (
|
|
495
|
+
var _a2;
|
|
496
|
+
const resolvedVolume = typeof event.volume === "number" ? event.volume : (_a2 = primaryVenueMarket == null ? void 0 : primaryVenueMarket.volume) != null ? _a2 : void 0;
|
|
491
497
|
if (typeof resolvedVolume !== "number")
|
|
492
498
|
return "";
|
|
493
499
|
return `${config.formatCompactCurrency(resolvedVolume)} ${labels.eventItemDetails.volumeSuffix}`;
|
|
@@ -585,6 +591,7 @@ var EventListItemDetailsContent = ({
|
|
|
585
591
|
EventListItemDetailsGraphSection,
|
|
586
592
|
{
|
|
587
593
|
venueMarkets,
|
|
594
|
+
canonicalMarketId: (_b = (_a = event.markets) == null ? void 0 : _a[0]) == null ? void 0 : _b.id,
|
|
588
595
|
selectedOutcomeLabel,
|
|
589
596
|
onSelectedOutcomeLabelChange: setSelectedOutcomeLabel,
|
|
590
597
|
switchLabels,
|
|
@@ -9,14 +9,14 @@ import {
|
|
|
9
9
|
resolveVenueLabel,
|
|
10
10
|
resolveVisibleOutcomes,
|
|
11
11
|
selectPrimaryVenueMarket
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-QM7CGMFG.mjs";
|
|
13
13
|
import {
|
|
14
14
|
Badge
|
|
15
15
|
} from "./chunk-K6IJ4WBM.mjs";
|
|
16
16
|
import {
|
|
17
17
|
Skeleton,
|
|
18
18
|
baseCardClassName
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-M4RJHRFT.mjs";
|
|
20
20
|
import {
|
|
21
21
|
VenueLogo
|
|
22
22
|
} from "./chunk-PORVP72S.mjs";
|
|
@@ -60,10 +60,10 @@ var SwitchButton = ({
|
|
|
60
60
|
return null;
|
|
61
61
|
}
|
|
62
62
|
const handleKeyDown = (event, optionIndex) => {
|
|
63
|
-
if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") {
|
|
63
|
+
if ((event == null ? void 0 : event.key) !== "ArrowLeft" && (event == null ? void 0 : event.key) !== "ArrowRight") {
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
66
|
-
event.preventDefault();
|
|
66
|
+
event == null ? void 0 : event.preventDefault();
|
|
67
67
|
const nextOptionIndex = resolveNextEnabledIndex(
|
|
68
68
|
options,
|
|
69
69
|
optionIndex,
|