@agg-market/ui 6.0.0 → 7.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/README.md +17 -2
- package/dist/{chunk-LMOJKJOY.mjs → chunk-6I474QXG.mjs} +319 -199
- package/dist/{chunk-5ZKPBMRK.mjs → chunk-AVHMI47G.mjs} +18 -20
- package/dist/{chunk-ADGL6RFX.mjs → chunk-EEQPPN7N.mjs} +1 -1
- package/dist/{chunk-UBBOLLOS.mjs → chunk-EERL6BZF.mjs} +2 -4
- package/dist/{chunk-G6YKGVQR.mjs → chunk-KQKLLL4D.mjs} +15 -54
- package/dist/{chunk-2ICOSP7N.mjs → chunk-L5U7RGJV.mjs} +5 -5
- package/dist/{chunk-HI4EEDN5.mjs → chunk-MUB7NYWZ.mjs} +799 -228
- package/dist/chunk-OAJBTVZT.mjs +119 -0
- package/dist/{chunk-JE3Z52FD.mjs → chunk-OVQVAUAI.mjs} +110 -35
- package/dist/{chunk-CN7GI2RJ.mjs → chunk-ZYUJ7YEJ.mjs} +68 -8
- package/dist/events.js +1364 -771
- package/dist/events.mjs +4 -5
- package/dist/index.js +2353 -1541
- package/dist/index.mjs +597 -19
- package/dist/modals.js +1058 -651
- package/dist/modals.mjs +3 -4
- package/dist/pages.js +1717 -1055
- package/dist/pages.mjs +7 -7
- package/dist/primitives.js +936 -336
- package/dist/primitives.mjs +25 -11
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/trading.js +994 -512
- package/dist/trading.mjs +4 -4
- package/dist/types/auth/connect-button-view/connect-button-view.constants.d.mts +31 -0
- package/dist/types/auth/connect-button-view/connect-button-view.constants.d.ts +31 -0
- package/dist/types/auth/connect-button-view/connect-button-view.types.d.mts +83 -0
- package/dist/types/auth/connect-button-view/connect-button-view.types.d.ts +83 -0
- package/dist/types/auth/connect-button-view/index.d.mts +7 -0
- package/dist/types/auth/connect-button-view/index.d.ts +7 -0
- package/dist/types/auth/index.d.mts +1 -1
- package/dist/types/auth/index.d.ts +1 -1
- package/dist/types/index.d.mts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/primitives/chart/chart-type-switch.d.mts +10 -0
- package/dist/types/primitives/chart/chart-type-switch.d.ts +10 -0
- package/dist/types/primitives/chart/index.d.mts +7 -1
- package/dist/types/primitives/chart/index.d.ts +7 -1
- package/dist/types/primitives/icon/index.d.mts +8 -1
- package/dist/types/primitives/icon/index.d.ts +8 -1
- package/dist/types/primitives/icon/registry.d.mts +28 -0
- package/dist/types/primitives/icon/registry.d.ts +28 -0
- package/dist/types/primitives/icon/svg/apple.d.mts +5 -0
- package/dist/types/primitives/icon/svg/apple.d.ts +5 -0
- package/dist/types/primitives/icon/svg/chart-candlestick.d.mts +5 -0
- package/dist/types/primitives/icon/svg/chart-candlestick.d.ts +5 -0
- package/dist/types/primitives/icon/svg/chart-line.d.mts +5 -0
- package/dist/types/primitives/icon/svg/chart-line.d.ts +5 -0
- package/dist/types/primitives/icon/svg/error-filled.d.mts +5 -0
- package/dist/types/primitives/icon/svg/error-filled.d.ts +5 -0
- package/dist/types/primitives/icon/svg/ethereum.d.mts +5 -0
- package/dist/types/primitives/icon/svg/ethereum.d.ts +5 -0
- package/dist/types/primitives/icon/svg/google.d.mts +5 -0
- package/dist/types/primitives/icon/svg/google.d.ts +5 -0
- package/dist/types/primitives/icon/svg/solana.d.mts +5 -0
- package/dist/types/primitives/icon/svg/solana.d.ts +5 -0
- package/dist/types/primitives/index.d.mts +1 -0
- package/dist/types/primitives/index.d.ts +1 -0
- package/dist/types/primitives/inline-alert/index.d.mts +16 -0
- package/dist/types/primitives/inline-alert/index.d.ts +16 -0
- package/dist/types/primitives/venue-logo/svg/logo-limitless.d.mts +5 -0
- package/dist/types/primitives/venue-logo/svg/logo-limitless.d.ts +5 -0
- package/dist/types/primitives/venue-logo/venue-logo.types.d.mts +1 -1
- package/dist/types/primitives/venue-logo/venue-logo.types.d.ts +1 -1
- package/dist/types/trading/types.d.mts +26 -26
- package/dist/types/trading/types.d.ts +26 -26
- package/package.json +3 -15
- package/dist/auth.d.mts +0 -1
- package/dist/auth.d.ts +0 -1
- package/dist/auth.js +0 -2290
- package/dist/auth.mjs +0 -8
- package/dist/chunk-INRG3D4M.mjs +0 -450
- package/dist/chunk-MHCHR65A.mjs +0 -165
- package/dist/chunk-PASXFYKQ.mjs +0 -81
- package/dist/types/auth/connect-button/connect-button.constants.d.mts +0 -10
- package/dist/types/auth/connect-button/connect-button.constants.d.ts +0 -10
- package/dist/types/auth/connect-button/connect-button.types.d.mts +0 -33
- package/dist/types/auth/connect-button/connect-button.types.d.ts +0 -33
- package/dist/types/auth/connect-button/index.d.mts +0 -7
- package/dist/types/auth/connect-button/index.d.ts +0 -7
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
StateMessage,
|
|
5
5
|
SwitchButton,
|
|
6
6
|
Typography
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ZYUJ7YEJ.mjs";
|
|
8
8
|
import {
|
|
9
9
|
Card,
|
|
10
10
|
MarketDetailsOderbookSkeleton,
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
marketDetailsBaseCardClassName,
|
|
20
20
|
marketDetailsDefaultIsOpened,
|
|
21
21
|
orderBookRowLimitDefault
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-EERL6BZF.mjs";
|
|
23
23
|
import {
|
|
24
24
|
Button,
|
|
25
25
|
Icon,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
cn,
|
|
31
31
|
getMotionClassName,
|
|
32
32
|
toDate
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-MUB7NYWZ.mjs";
|
|
34
34
|
|
|
35
35
|
// src/events/item/index.tsx
|
|
36
36
|
import dayjs from "dayjs";
|
|
@@ -475,8 +475,88 @@ var EventListItem = (props) => {
|
|
|
475
475
|
EventListItem.displayName = "EventListItem";
|
|
476
476
|
|
|
477
477
|
// src/events/item-details/index.tsx
|
|
478
|
-
import { useEffect, useMemo as
|
|
479
|
-
import { useEvent as useEvent2, useLabels as
|
|
478
|
+
import { useEffect, useMemo as useMemo3, useState } from "react";
|
|
479
|
+
import { useEvent as useEvent2, useLabels as useLabels3, usePriceHistory, useSdkUiConfig as useSdkUiConfig2 } from "@agg-market/hooks";
|
|
480
|
+
|
|
481
|
+
// src/primitives/chart/chart-type-switch.tsx
|
|
482
|
+
import { useLabels as useLabels2 } from "@agg-market/hooks";
|
|
483
|
+
import { useMemo as useMemo2 } from "react";
|
|
484
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
485
|
+
var ChartTypeSwitch = ({
|
|
486
|
+
value,
|
|
487
|
+
onValueChange,
|
|
488
|
+
className
|
|
489
|
+
}) => {
|
|
490
|
+
const labels = useLabels2();
|
|
491
|
+
const options = useMemo2(
|
|
492
|
+
() => [
|
|
493
|
+
{
|
|
494
|
+
value: "line",
|
|
495
|
+
iconName: "chart-line",
|
|
496
|
+
ariaLabel: labels.common.lineChartType
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
value: "candlestick",
|
|
500
|
+
iconName: "chart-candlestick",
|
|
501
|
+
ariaLabel: labels.common.candlestickChartType
|
|
502
|
+
}
|
|
503
|
+
],
|
|
504
|
+
[labels]
|
|
505
|
+
);
|
|
506
|
+
const handleKeyDown = (event, index) => {
|
|
507
|
+
if (event.key !== "ArrowLeft" && event.key !== "ArrowRight") {
|
|
508
|
+
return;
|
|
509
|
+
}
|
|
510
|
+
event.preventDefault();
|
|
511
|
+
const direction = event.key === "ArrowRight" ? 1 : -1;
|
|
512
|
+
const nextIndex = (index + direction + options.length) % options.length;
|
|
513
|
+
const nextOption = options[nextIndex];
|
|
514
|
+
if (!nextOption || nextOption.value === value) {
|
|
515
|
+
return;
|
|
516
|
+
}
|
|
517
|
+
onValueChange(nextOption.value);
|
|
518
|
+
};
|
|
519
|
+
return /* @__PURE__ */ jsx2(
|
|
520
|
+
"div",
|
|
521
|
+
{
|
|
522
|
+
className: cn("inline-flex items-center gap-2", className),
|
|
523
|
+
role: "tablist",
|
|
524
|
+
"aria-label": labels.common.chartTypeSwitchAria,
|
|
525
|
+
children: options.map((option, index) => {
|
|
526
|
+
const isActive = option.value === value;
|
|
527
|
+
return /* @__PURE__ */ jsx2(
|
|
528
|
+
"button",
|
|
529
|
+
{
|
|
530
|
+
type: "button",
|
|
531
|
+
role: "tab",
|
|
532
|
+
"aria-selected": isActive,
|
|
533
|
+
"aria-label": option.ariaLabel,
|
|
534
|
+
tabIndex: isActive ? 0 : -1,
|
|
535
|
+
className: cn(
|
|
536
|
+
"cursor-pointer hover:text-agg-foreground",
|
|
537
|
+
"inline-flex size-5 items-center justify-center rounded-agg-sm bg-transparent p-0",
|
|
538
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-primary focus-visible:ring-offset-2 focus-visible:ring-offset-agg-background",
|
|
539
|
+
"transition-colors duration-200 ease-in-out",
|
|
540
|
+
isActive ? "text-agg-foreground" : "text-agg-muted-foreground"
|
|
541
|
+
),
|
|
542
|
+
onClick: () => {
|
|
543
|
+
if (isActive) {
|
|
544
|
+
return;
|
|
545
|
+
}
|
|
546
|
+
onValueChange(option.value);
|
|
547
|
+
},
|
|
548
|
+
onKeyDown: (event) => {
|
|
549
|
+
handleKeyDown(event, index);
|
|
550
|
+
},
|
|
551
|
+
children: /* @__PURE__ */ jsx2(Icon, { name: option.iconName, color: "currentColor", className: "h-5 w-5" })
|
|
552
|
+
},
|
|
553
|
+
option.value
|
|
554
|
+
);
|
|
555
|
+
})
|
|
556
|
+
}
|
|
557
|
+
);
|
|
558
|
+
};
|
|
559
|
+
ChartTypeSwitch.displayName = "ChartTypeSwitch";
|
|
480
560
|
|
|
481
561
|
// src/events/item-details/event-list-item-details.utils.ts
|
|
482
562
|
import dayjs2 from "dayjs";
|
|
@@ -604,13 +684,13 @@ var resolveSeriesColor = (venue, index) => {
|
|
|
604
684
|
};
|
|
605
685
|
|
|
606
686
|
// src/events/item-details/index.tsx
|
|
607
|
-
import { jsx as
|
|
687
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
608
688
|
var EventListItemDetailsLoadingState = ({
|
|
609
689
|
classNames,
|
|
610
690
|
ariaLabel
|
|
611
691
|
}) => {
|
|
612
|
-
const labels =
|
|
613
|
-
return /* @__PURE__ */
|
|
692
|
+
const labels = useLabels3();
|
|
693
|
+
return /* @__PURE__ */ jsx3(
|
|
614
694
|
Skeleton,
|
|
615
695
|
{
|
|
616
696
|
view: "event-list-item-details",
|
|
@@ -623,16 +703,16 @@ var EventListItemDetailsUnavailableState = ({
|
|
|
623
703
|
classNames,
|
|
624
704
|
ariaLabel
|
|
625
705
|
}) => {
|
|
626
|
-
const labels =
|
|
627
|
-
return /* @__PURE__ */
|
|
706
|
+
const labels = useLabels3();
|
|
707
|
+
return /* @__PURE__ */ jsx3(
|
|
628
708
|
Card,
|
|
629
709
|
{
|
|
630
710
|
className: cn(detailsBaseCardClassName, classNames == null ? void 0 : classNames.root),
|
|
631
711
|
role: "status",
|
|
632
712
|
"aria-label": ariaLabel != null ? ariaLabel : labels.eventItemDetails.unavailableAria,
|
|
633
713
|
children: /* @__PURE__ */ jsxs2("div", { className: cn("flex flex-col gap-1", classNames == null ? void 0 : classNames.header), children: [
|
|
634
|
-
/* @__PURE__ */
|
|
635
|
-
/* @__PURE__ */
|
|
714
|
+
/* @__PURE__ */ jsx3(Typography, { variant: "body-large-strong", className: cn("truncate", classNames == null ? void 0 : classNames.title), children: labels.eventItemDetails.unavailableTitle }),
|
|
715
|
+
/* @__PURE__ */ jsx3(Typography, { variant: "body", className: "text-agg-muted-foreground", children: labels.eventItemDetails.unavailableDescription })
|
|
636
716
|
] })
|
|
637
717
|
}
|
|
638
718
|
);
|
|
@@ -641,8 +721,8 @@ var EventListItemDetailsNotFoundState = ({
|
|
|
641
721
|
classNames,
|
|
642
722
|
ariaLabel
|
|
643
723
|
}) => {
|
|
644
|
-
const labels =
|
|
645
|
-
return /* @__PURE__ */
|
|
724
|
+
const labels = useLabels3();
|
|
725
|
+
return /* @__PURE__ */ jsx3(Card, { className: cn(detailsBaseCardClassName, classNames == null ? void 0 : classNames.root), children: /* @__PURE__ */ jsx3(
|
|
646
726
|
StateMessage,
|
|
647
727
|
{
|
|
648
728
|
ariaLabel: ariaLabel != null ? ariaLabel : labels.eventItemDetails.notFoundAria,
|
|
@@ -687,12 +767,13 @@ var EventListItemDetailsGraphSection = ({
|
|
|
687
767
|
showVenueLogo,
|
|
688
768
|
venueInfo,
|
|
689
769
|
formatPercent,
|
|
690
|
-
selectedTimeRange
|
|
770
|
+
selectedTimeRange,
|
|
771
|
+
selectedChartType
|
|
691
772
|
}) => {
|
|
692
|
-
const labels =
|
|
773
|
+
const labels = useLabels3();
|
|
693
774
|
const [selectedVenue, setSelectedVenue] = useState(null);
|
|
694
775
|
const [activeProbabilityMode, setActiveProbabilityMode] = useState("yes");
|
|
695
|
-
const probabilityModeConfigs =
|
|
776
|
+
const probabilityModeConfigs = useMemo3(() => {
|
|
696
777
|
if (isDateOutcomeMarket) {
|
|
697
778
|
return {
|
|
698
779
|
yes: {
|
|
@@ -720,7 +801,7 @@ var EventListItemDetailsGraphSection = ({
|
|
|
720
801
|
}
|
|
721
802
|
};
|
|
722
803
|
}, [isDateOutcomeMarket, selectedOutcomeLabel, switchLabels]);
|
|
723
|
-
const selectedOutcomesByMode =
|
|
804
|
+
const selectedOutcomesByMode = useMemo3(() => {
|
|
724
805
|
return {
|
|
725
806
|
yes: resolveOutcomesByVenue(venueMarkets, probabilityModeConfigs.yes.sourceOutcomeLabel),
|
|
726
807
|
no: resolveOutcomesByVenue(venueMarkets, probabilityModeConfigs.no.sourceOutcomeLabel)
|
|
@@ -737,7 +818,7 @@ var EventListItemDetailsGraphSection = ({
|
|
|
737
818
|
const nextMode = selectedOutcomeLabel === probabilityModeConfigs.no.sourceOutcomeLabel ? "no" : "yes";
|
|
738
819
|
setActiveProbabilityMode(nextMode);
|
|
739
820
|
}, [isDateOutcomeMarket, probabilityModeConfigs.no.sourceOutcomeLabel, selectedOutcomeLabel]);
|
|
740
|
-
const normalizedVenueDataByMode =
|
|
821
|
+
const normalizedVenueDataByMode = useMemo3(() => {
|
|
741
822
|
const buildModeData = (mode) => {
|
|
742
823
|
const modeConfig = probabilityModeConfigs[mode];
|
|
743
824
|
return selectedOutcomesByMode[mode].map((outcomeByVenue, index) => {
|
|
@@ -758,7 +839,7 @@ var EventListItemDetailsGraphSection = ({
|
|
|
758
839
|
no: buildModeData("no")
|
|
759
840
|
};
|
|
760
841
|
}, [labels, probabilityModeConfigs, selectedOutcomesByMode, venueInfo]);
|
|
761
|
-
const allOutcomesForHistory =
|
|
842
|
+
const allOutcomesForHistory = useMemo3(() => {
|
|
762
843
|
const outcomeByModeAndId = /* @__PURE__ */ new Map();
|
|
763
844
|
probabilityModeOrder.forEach((mode) => {
|
|
764
845
|
selectedOutcomesByMode[mode].forEach((outcomeByVenue) => {
|
|
@@ -770,10 +851,10 @@ var EventListItemDetailsGraphSection = ({
|
|
|
770
851
|
});
|
|
771
852
|
return [...outcomeByModeAndId.values()];
|
|
772
853
|
}, [selectedOutcomesByMode]);
|
|
773
|
-
const priceHistoryGroups =
|
|
854
|
+
const priceHistoryGroups = useMemo3(() => {
|
|
774
855
|
return buildPriceHistoryGroups(allOutcomesForHistory, canonicalMarketId);
|
|
775
856
|
}, [allOutcomesForHistory, canonicalMarketId]);
|
|
776
|
-
const timeWindow =
|
|
857
|
+
const timeWindow = useMemo3(() => {
|
|
777
858
|
return getTimeWindowByRange(selectedTimeRange);
|
|
778
859
|
}, [selectedTimeRange]);
|
|
779
860
|
const {
|
|
@@ -786,7 +867,7 @@ var EventListItemDetailsGraphSection = ({
|
|
|
786
867
|
}, timeWindow), {
|
|
787
868
|
enabled: priceHistoryGroups.length > 0
|
|
788
869
|
}));
|
|
789
|
-
const priceHistoryByVenue =
|
|
870
|
+
const priceHistoryByVenue = useMemo3(() => {
|
|
790
871
|
const historyByVenue = /* @__PURE__ */ new Map();
|
|
791
872
|
if (!(priceHistoryData == null ? void 0 : priceHistoryData.length)) {
|
|
792
873
|
return historyByVenue;
|
|
@@ -802,7 +883,7 @@ var EventListItemDetailsGraphSection = ({
|
|
|
802
883
|
});
|
|
803
884
|
return historyByVenue;
|
|
804
885
|
}, [priceHistoryData]);
|
|
805
|
-
const chartSeriesByMode =
|
|
886
|
+
const chartSeriesByMode = useMemo3(() => {
|
|
806
887
|
const buildSeries = (mode) => {
|
|
807
888
|
const modeConfig = probabilityModeConfigs[mode];
|
|
808
889
|
const chartSeries = [];
|
|
@@ -819,10 +900,19 @@ var EventListItemDetailsGraphSection = ({
|
|
|
819
900
|
const probability = normalizeProbability(point.price);
|
|
820
901
|
if (probability == null || !Number.isFinite(point.timestamp))
|
|
821
902
|
return null;
|
|
822
|
-
|
|
903
|
+
const open = normalizeProbability(point.open);
|
|
904
|
+
const high = normalizeProbability(point.high);
|
|
905
|
+
const low = normalizeProbability(point.low);
|
|
906
|
+
const close = normalizeProbability(point.close);
|
|
907
|
+
const transformedPoint = {
|
|
823
908
|
time: point.timestamp,
|
|
824
|
-
value: clampProbability(modeConfig.transformProbability(probability)) * 100
|
|
909
|
+
value: clampProbability(modeConfig.transformProbability(probability)) * 100,
|
|
910
|
+
open: open == null ? void 0 : clampProbability(modeConfig.transformProbability(open)) * 100,
|
|
911
|
+
high: high == null ? void 0 : clampProbability(modeConfig.transformProbability(high)) * 100,
|
|
912
|
+
low: low == null ? void 0 : clampProbability(modeConfig.transformProbability(low)) * 100,
|
|
913
|
+
close: close == null ? void 0 : clampProbability(modeConfig.transformProbability(close)) * 100
|
|
825
914
|
};
|
|
915
|
+
return transformedPoint;
|
|
826
916
|
}).filter((point) => point != null);
|
|
827
917
|
if (points.length === 0)
|
|
828
918
|
return;
|
|
@@ -842,13 +932,13 @@ var EventListItemDetailsGraphSection = ({
|
|
|
842
932
|
no: buildSeries("no")
|
|
843
933
|
};
|
|
844
934
|
}, [normalizedVenueDataByMode, priceHistoryByVenue, probabilityModeConfigs]);
|
|
845
|
-
const visibleChartSeries =
|
|
935
|
+
const visibleChartSeries = useMemo3(() => {
|
|
846
936
|
const modeSeries = chartSeriesByMode[activeProbabilityMode];
|
|
847
937
|
if (!selectedVenue)
|
|
848
938
|
return modeSeries;
|
|
849
939
|
return modeSeries.filter((seriesItem) => seriesItem.venue === selectedVenue);
|
|
850
940
|
}, [activeProbabilityMode, chartSeriesByMode, selectedVenue]);
|
|
851
|
-
const segmentedDisplayItems =
|
|
941
|
+
const segmentedDisplayItems = useMemo3(() => {
|
|
852
942
|
return probabilityModeOrder.map((mode) => {
|
|
853
943
|
const averageProbability = resolveAverageProbability(
|
|
854
944
|
normalizedVenueDataByMode[mode].map((venueData) => venueData.probability)
|
|
@@ -889,14 +979,14 @@ var EventListItemDetailsGraphSection = ({
|
|
|
889
979
|
void Promise.all(priceHistoryResults.map((result) => result.refetch()));
|
|
890
980
|
};
|
|
891
981
|
if (priceHistoryError) {
|
|
892
|
-
return /* @__PURE__ */
|
|
982
|
+
return /* @__PURE__ */ jsx3(
|
|
893
983
|
"div",
|
|
894
984
|
{
|
|
895
985
|
className: cn(
|
|
896
986
|
"w-full rounded-agg-xl border border-agg-separator bg-agg-secondary",
|
|
897
987
|
classNames == null ? void 0 : classNames.chart
|
|
898
988
|
),
|
|
899
|
-
children: /* @__PURE__ */
|
|
989
|
+
children: /* @__PURE__ */ jsx3(
|
|
900
990
|
StateMessage,
|
|
901
991
|
{
|
|
902
992
|
ariaLabel: labels.eventItemDetails.chartUnavailableAria,
|
|
@@ -911,13 +1001,14 @@ var EventListItemDetailsGraphSection = ({
|
|
|
911
1001
|
}
|
|
912
1002
|
);
|
|
913
1003
|
}
|
|
914
|
-
return /* @__PURE__ */
|
|
1004
|
+
return /* @__PURE__ */ jsx3(
|
|
915
1005
|
LineChart,
|
|
916
1006
|
{
|
|
917
1007
|
classNames: { root: classNames == null ? void 0 : classNames.chart },
|
|
918
1008
|
series: visibleChartSeries,
|
|
919
1009
|
height: 300,
|
|
920
1010
|
isLoading: isPriceHistoryLoading,
|
|
1011
|
+
chartType: selectedChartType,
|
|
921
1012
|
showSeriesControls: activeModeVenueData.length > 0 || segmentedDisplayItems.length > 0,
|
|
922
1013
|
renderSeriesControls: () => {
|
|
923
1014
|
return /* @__PURE__ */ jsxs2(
|
|
@@ -925,7 +1016,7 @@ var EventListItemDetailsGraphSection = ({
|
|
|
925
1016
|
{
|
|
926
1017
|
className: cn("flex flex-row items-center justify-between gap-4", classNames == null ? void 0 : classNames.summary),
|
|
927
1018
|
children: [
|
|
928
|
-
/* @__PURE__ */
|
|
1019
|
+
/* @__PURE__ */ jsx3(
|
|
929
1020
|
"div",
|
|
930
1021
|
{
|
|
931
1022
|
className: cn(
|
|
@@ -936,7 +1027,7 @@ var EventListItemDetailsGraphSection = ({
|
|
|
936
1027
|
var _a;
|
|
937
1028
|
const text = venueData.probability == null ? "-" : formatPercent(venueData.probability);
|
|
938
1029
|
const isActiveVenue = selectedVenue === venueData.venue;
|
|
939
|
-
return /* @__PURE__ */
|
|
1030
|
+
return /* @__PURE__ */ jsx3(
|
|
940
1031
|
"button",
|
|
941
1032
|
{
|
|
942
1033
|
type: "button",
|
|
@@ -945,12 +1036,12 @@ var EventListItemDetailsGraphSection = ({
|
|
|
945
1036
|
className: cn(
|
|
946
1037
|
"rounded-agg-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-primary focus-visible:ring-offset-2 focus-visible:ring-offset-agg-secondary-hover"
|
|
947
1038
|
),
|
|
948
|
-
children: /* @__PURE__ */
|
|
1039
|
+
children: /* @__PURE__ */ jsx3(
|
|
949
1040
|
Badge,
|
|
950
1041
|
{
|
|
951
1042
|
text,
|
|
952
1043
|
size: "large",
|
|
953
|
-
prefix: showVenueLogo ? /* @__PURE__ */
|
|
1044
|
+
prefix: showVenueLogo ? /* @__PURE__ */ jsx3(
|
|
954
1045
|
VenueLogo,
|
|
955
1046
|
{
|
|
956
1047
|
venue: venueData.venue,
|
|
@@ -975,7 +1066,7 @@ var EventListItemDetailsGraphSection = ({
|
|
|
975
1066
|
})
|
|
976
1067
|
}
|
|
977
1068
|
),
|
|
978
|
-
/* @__PURE__ */
|
|
1069
|
+
/* @__PURE__ */ jsx3(
|
|
979
1070
|
SwitchButton,
|
|
980
1071
|
{
|
|
981
1072
|
ariaLabel: labels.eventItemDetails.outcomeSelectorAria,
|
|
@@ -1009,15 +1100,15 @@ var EventListItemDetailsContent = ({
|
|
|
1009
1100
|
}) => {
|
|
1010
1101
|
var _a, _b;
|
|
1011
1102
|
const config = useSdkUiConfig2();
|
|
1012
|
-
const labels =
|
|
1013
|
-
const venueMarkets =
|
|
1103
|
+
const labels = useLabels3();
|
|
1104
|
+
const venueMarkets = useMemo3(() => {
|
|
1014
1105
|
var _a2, _b2, _c;
|
|
1015
1106
|
return (_c = (_b2 = (_a2 = event.markets) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.venueMarkets) != null ? _c : [];
|
|
1016
1107
|
}, [event.markets]);
|
|
1017
|
-
const primaryVenueMarket =
|
|
1108
|
+
const primaryVenueMarket = useMemo3(() => {
|
|
1018
1109
|
return selectPrimaryVenueMarket(venueMarkets);
|
|
1019
1110
|
}, [venueMarkets]);
|
|
1020
|
-
const outcomeLabels =
|
|
1111
|
+
const outcomeLabels = useMemo3(() => {
|
|
1021
1112
|
return resolveOutcomeLabels(venueMarkets);
|
|
1022
1113
|
}, [venueMarkets]);
|
|
1023
1114
|
const [selectedOutcomeLabel, setSelectedOutcomeLabel] = useState(() => {
|
|
@@ -1026,6 +1117,7 @@ var EventListItemDetailsContent = ({
|
|
|
1026
1117
|
const [selectedTimeRange, setSelectedTimeRange] = useState(() => {
|
|
1027
1118
|
return getDefaultSelectedTimeRange(defaultTimeRange);
|
|
1028
1119
|
});
|
|
1120
|
+
const [selectedChartType, setSelectedChartType] = useState("line");
|
|
1029
1121
|
useEffect(() => {
|
|
1030
1122
|
setSelectedTimeRange(getDefaultSelectedTimeRange(defaultTimeRange));
|
|
1031
1123
|
}, [defaultTimeRange]);
|
|
@@ -1033,7 +1125,7 @@ var EventListItemDetailsContent = ({
|
|
|
1033
1125
|
const resolvedImage = resolveTileImage(event, primaryVenueMarket, image);
|
|
1034
1126
|
const isDateOutcomeMarket = outcomeLabels.length > 2 && outcomeLabels.every(isDateLikeLabel);
|
|
1035
1127
|
const outcomeSelectorLabels = outcomeLabels;
|
|
1036
|
-
const probabilityByLabel =
|
|
1128
|
+
const probabilityByLabel = useMemo3(() => {
|
|
1037
1129
|
return new Map(
|
|
1038
1130
|
outcomeLabels.map((label) => {
|
|
1039
1131
|
const outcomesByVenue = resolveOutcomesByVenue(venueMarkets, label);
|
|
@@ -1046,7 +1138,7 @@ var EventListItemDetailsContent = ({
|
|
|
1046
1138
|
})
|
|
1047
1139
|
);
|
|
1048
1140
|
}, [outcomeLabels, venueMarkets]);
|
|
1049
|
-
const mainOutcomeLabel =
|
|
1141
|
+
const mainOutcomeLabel = useMemo3(() => {
|
|
1050
1142
|
if (outcomeLabels.length === 0)
|
|
1051
1143
|
return void 0;
|
|
1052
1144
|
return [...outcomeLabels].sort((left, right) => {
|
|
@@ -1067,7 +1159,7 @@ var EventListItemDetailsContent = ({
|
|
|
1067
1159
|
const fallbackOutcomeLabel = isDateOutcomeMarket ? resolveDefaultOutcomeLabel(outcomeLabels) : mainOutcomeLabel != null ? mainOutcomeLabel : resolveDefaultOutcomeLabel(outcomeLabels);
|
|
1068
1160
|
setSelectedOutcomeLabel(fallbackOutcomeLabel);
|
|
1069
1161
|
}, [isDateOutcomeMarket, mainOutcomeLabel, outcomeLabels, selectedOutcomeLabel]);
|
|
1070
|
-
const switchLabels =
|
|
1162
|
+
const switchLabels = useMemo3(() => {
|
|
1071
1163
|
var _a2, _b2;
|
|
1072
1164
|
if (isDateOutcomeMarket) {
|
|
1073
1165
|
return [labels.eventItemDetails.yes, labels.eventItemDetails.no];
|
|
@@ -1088,7 +1180,7 @@ var EventListItemDetailsContent = ({
|
|
|
1088
1180
|
outcomeLabels,
|
|
1089
1181
|
probabilityByLabel
|
|
1090
1182
|
]);
|
|
1091
|
-
const volumeLabel =
|
|
1183
|
+
const volumeLabel = useMemo3(() => {
|
|
1092
1184
|
var _a2;
|
|
1093
1185
|
const resolvedVolume = typeof event.volume === "number" ? event.volume : (_a2 = primaryVenueMarket == null ? void 0 : primaryVenueMarket.volume) != null ? _a2 : void 0;
|
|
1094
1186
|
if (typeof resolvedVolume !== "number")
|
|
@@ -1096,7 +1188,7 @@ var EventListItemDetailsContent = ({
|
|
|
1096
1188
|
return `${config.formatCompactCurrency(resolvedVolume)} ${labels.eventItemDetails.volumeSuffix}`;
|
|
1097
1189
|
}, [config, event.volume, labels.eventItemDetails.volumeSuffix, primaryVenueMarket == null ? void 0 : primaryVenueMarket.volume]);
|
|
1098
1190
|
if (!primaryVenueMarket || !selectedOutcomeLabel) {
|
|
1099
|
-
return /* @__PURE__ */
|
|
1191
|
+
return /* @__PURE__ */ jsx3(EventListItemDetailsUnavailableState, { classNames, ariaLabel });
|
|
1100
1192
|
}
|
|
1101
1193
|
return /* @__PURE__ */ jsxs2(
|
|
1102
1194
|
Card,
|
|
@@ -1113,7 +1205,7 @@ var EventListItemDetailsContent = ({
|
|
|
1113
1205
|
classNames == null ? void 0 : classNames.header
|
|
1114
1206
|
),
|
|
1115
1207
|
children: [
|
|
1116
|
-
resolvedImage ? /* @__PURE__ */
|
|
1208
|
+
resolvedImage ? /* @__PURE__ */ jsx3(
|
|
1117
1209
|
"img",
|
|
1118
1210
|
{
|
|
1119
1211
|
src: resolvedImage,
|
|
@@ -1122,7 +1214,7 @@ var EventListItemDetailsContent = ({
|
|
|
1122
1214
|
}
|
|
1123
1215
|
) : null,
|
|
1124
1216
|
/* @__PURE__ */ jsxs2("div", { className: "flex min-w-0 flex-1 flex-col gap-3", children: [
|
|
1125
|
-
/* @__PURE__ */
|
|
1217
|
+
/* @__PURE__ */ jsx3(
|
|
1126
1218
|
Typography,
|
|
1127
1219
|
{
|
|
1128
1220
|
variant: "body-strong",
|
|
@@ -1134,7 +1226,7 @@ var EventListItemDetailsContent = ({
|
|
|
1134
1226
|
children: resolvedTitle
|
|
1135
1227
|
}
|
|
1136
1228
|
),
|
|
1137
|
-
outcomeSelectorLabels.length > 2 ? /* @__PURE__ */
|
|
1229
|
+
outcomeSelectorLabels.length > 2 ? /* @__PURE__ */ jsx3(
|
|
1138
1230
|
"div",
|
|
1139
1231
|
{
|
|
1140
1232
|
className: cn(
|
|
@@ -1144,7 +1236,7 @@ var EventListItemDetailsContent = ({
|
|
|
1144
1236
|
children: outcomeSelectorLabels.map((outcomeSelectorLabel) => {
|
|
1145
1237
|
const isActive = outcomeSelectorLabel === selectedOutcomeLabel;
|
|
1146
1238
|
const displayLabel = isDateLikeLabel(outcomeSelectorLabel) ? formatDateLabel(outcomeSelectorLabel) : outcomeSelectorLabel;
|
|
1147
|
-
return /* @__PURE__ */
|
|
1239
|
+
return /* @__PURE__ */ jsx3(
|
|
1148
1240
|
Button,
|
|
1149
1241
|
{
|
|
1150
1242
|
size: "small",
|
|
@@ -1167,12 +1259,12 @@ var EventListItemDetailsContent = ({
|
|
|
1167
1259
|
]
|
|
1168
1260
|
}
|
|
1169
1261
|
),
|
|
1170
|
-
detailsStats && detailsStats.length > 0 ? /* @__PURE__ */
|
|
1262
|
+
detailsStats && detailsStats.length > 0 ? /* @__PURE__ */ jsx3("div", { className: cn("flex flex-wrap items-start gap-4 md:gap-6", classNames == null ? void 0 : classNames.headerStats), children: detailsStats.map((statItem) => {
|
|
1171
1263
|
const deltaClassName = statItem.deltaTone === "positive" ? "text-agg-success!" : statItem.deltaTone === "negative" ? "text-agg-error!" : "text-agg-muted-foreground";
|
|
1172
1264
|
return /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-1", children: [
|
|
1173
|
-
/* @__PURE__ */
|
|
1265
|
+
/* @__PURE__ */ jsx3(Typography, { variant: "caption-caps", className: "text-agg-muted-foreground", children: statItem.label }),
|
|
1174
1266
|
/* @__PURE__ */ jsxs2("div", { className: "flex items-baseline gap-1", children: [
|
|
1175
|
-
/* @__PURE__ */
|
|
1267
|
+
/* @__PURE__ */ jsx3(
|
|
1176
1268
|
Typography,
|
|
1177
1269
|
{
|
|
1178
1270
|
variant: "body",
|
|
@@ -1180,11 +1272,11 @@ var EventListItemDetailsContent = ({
|
|
|
1180
1272
|
children: statItem.value
|
|
1181
1273
|
}
|
|
1182
1274
|
),
|
|
1183
|
-
statItem.delta ? /* @__PURE__ */
|
|
1275
|
+
statItem.delta ? /* @__PURE__ */ jsx3(Typography, { variant: "label", className: cn(deltaClassName), children: statItem.delta }) : null
|
|
1184
1276
|
] })
|
|
1185
1277
|
] }, `${statItem.label}-${statItem.value}`);
|
|
1186
1278
|
}) }) : null,
|
|
1187
|
-
/* @__PURE__ */
|
|
1279
|
+
/* @__PURE__ */ jsx3(
|
|
1188
1280
|
EventListItemDetailsGraphSection,
|
|
1189
1281
|
{
|
|
1190
1282
|
venueMarkets,
|
|
@@ -1197,31 +1289,36 @@ var EventListItemDetailsContent = ({
|
|
|
1197
1289
|
showVenueLogo,
|
|
1198
1290
|
venueInfo,
|
|
1199
1291
|
formatPercent: config.formatPercent,
|
|
1200
|
-
selectedTimeRange
|
|
1292
|
+
selectedTimeRange,
|
|
1293
|
+
selectedChartType
|
|
1201
1294
|
}
|
|
1202
1295
|
),
|
|
1203
1296
|
/* @__PURE__ */ jsxs2("div", { className: cn("flex flex-wrap items-center justify-between gap-4", classNames == null ? void 0 : classNames.footer), children: [
|
|
1204
|
-
/* @__PURE__ */
|
|
1205
|
-
/* @__PURE__ */
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1297
|
+
/* @__PURE__ */ jsx3(Typography, { variant: "label", className: "text-agg-muted-foreground", children: volumeLabel || "-" }),
|
|
1298
|
+
/* @__PURE__ */ jsxs2("div", { className: cn("flex flex-wrap items-center gap-2 md:gap-3", classNames == null ? void 0 : classNames.timeRange), children: [
|
|
1299
|
+
/* @__PURE__ */ jsx3(ChartTypeSwitch, { value: selectedChartType, onValueChange: setSelectedChartType }),
|
|
1300
|
+
/* @__PURE__ */ jsx3("span", { "aria-hidden": "true", className: "hidden h-4 w-px bg-agg-separator md:block" }),
|
|
1301
|
+
eventListItemDetailsTimeRanges.map((timeRange) => {
|
|
1302
|
+
const isActive = timeRange === selectedTimeRange;
|
|
1303
|
+
return /* @__PURE__ */ jsx3(
|
|
1304
|
+
Button,
|
|
1305
|
+
{
|
|
1306
|
+
size: "small",
|
|
1307
|
+
variant: "tertiary",
|
|
1308
|
+
className: cn(
|
|
1309
|
+
"h-auto min-w-0 rounded-none px-0 py-0 text-agg-xs leading-agg-4 md:text-agg-sm md:leading-agg-5",
|
|
1310
|
+
"border-0 bg-transparent shadow-none",
|
|
1311
|
+
"hover:text-agg-foreground!",
|
|
1312
|
+
isActive ? "font-agg-bold! text-agg-foreground!" : "font-agg-normal! text-agg-muted-foreground!"
|
|
1313
|
+
),
|
|
1314
|
+
"aria-pressed": isActive,
|
|
1315
|
+
onClick: () => setSelectedTimeRange(timeRange),
|
|
1316
|
+
children: timeRange === "ALL" ? labels.eventItemDetails.allTimeRange : timeRange
|
|
1317
|
+
},
|
|
1318
|
+
timeRange
|
|
1319
|
+
);
|
|
1320
|
+
})
|
|
1321
|
+
] })
|
|
1225
1322
|
] })
|
|
1226
1323
|
]
|
|
1227
1324
|
}
|
|
@@ -1241,11 +1338,11 @@ var EventListItemDetailsByEventId = (_a) => {
|
|
|
1241
1338
|
} = useEvent2(eventId, {
|
|
1242
1339
|
enabled: !!eventId
|
|
1243
1340
|
});
|
|
1244
|
-
const resolvedEvent =
|
|
1341
|
+
const resolvedEvent = useMemo3(() => {
|
|
1245
1342
|
return resolveEventListItemEvent(fetchedEvent);
|
|
1246
1343
|
}, [fetchedEvent]);
|
|
1247
1344
|
if (!eventId) {
|
|
1248
|
-
return /* @__PURE__ */
|
|
1345
|
+
return /* @__PURE__ */ jsx3(
|
|
1249
1346
|
EventListItemDetailsUnavailableState,
|
|
1250
1347
|
{
|
|
1251
1348
|
classNames: rest.classNames,
|
|
@@ -1254,16 +1351,16 @@ var EventListItemDetailsByEventId = (_a) => {
|
|
|
1254
1351
|
);
|
|
1255
1352
|
}
|
|
1256
1353
|
if (isLoading) {
|
|
1257
|
-
return /* @__PURE__ */
|
|
1354
|
+
return /* @__PURE__ */ jsx3(EventListItemDetailsLoadingState, { classNames: rest.classNames, ariaLabel: rest.ariaLabel });
|
|
1258
1355
|
}
|
|
1259
1356
|
if (isErrorWithStatus(error, 404)) {
|
|
1260
|
-
return /* @__PURE__ */
|
|
1357
|
+
return /* @__PURE__ */ jsx3(EventListItemDetailsNotFoundState, { classNames: rest.classNames, ariaLabel: rest.ariaLabel });
|
|
1261
1358
|
}
|
|
1262
1359
|
if (!fetchedEvent && !isError) {
|
|
1263
|
-
return /* @__PURE__ */
|
|
1360
|
+
return /* @__PURE__ */ jsx3(EventListItemDetailsLoadingState, { classNames: rest.classNames, ariaLabel: rest.ariaLabel });
|
|
1264
1361
|
}
|
|
1265
1362
|
if (!resolvedEvent) {
|
|
1266
|
-
return /* @__PURE__ */
|
|
1363
|
+
return /* @__PURE__ */ jsx3(
|
|
1267
1364
|
EventListItemDetailsUnavailableState,
|
|
1268
1365
|
{
|
|
1269
1366
|
classNames: rest.classNames,
|
|
@@ -1271,15 +1368,15 @@ var EventListItemDetailsByEventId = (_a) => {
|
|
|
1271
1368
|
}
|
|
1272
1369
|
);
|
|
1273
1370
|
}
|
|
1274
|
-
return /* @__PURE__ */
|
|
1371
|
+
return /* @__PURE__ */ jsx3(EventListItemDetailsContent, __spreadValues({ event: resolvedEvent }, rest));
|
|
1275
1372
|
};
|
|
1276
1373
|
var EventListItemDetails = (props) => {
|
|
1277
1374
|
if (props.isLoading) {
|
|
1278
|
-
return /* @__PURE__ */
|
|
1375
|
+
return /* @__PURE__ */ jsx3(EventListItemDetailsLoadingState, { classNames: props.classNames, ariaLabel: props.ariaLabel });
|
|
1279
1376
|
}
|
|
1280
1377
|
if ("event" in props && props.event) {
|
|
1281
1378
|
const _a = props, { event } = _a, rest = __objRest(_a, ["event"]);
|
|
1282
|
-
return /* @__PURE__ */
|
|
1379
|
+
return /* @__PURE__ */ jsx3(EventListItemDetailsContent, __spreadValues({ event }, rest));
|
|
1283
1380
|
}
|
|
1284
1381
|
if ("eventId" in props && typeof props.eventId === "string") {
|
|
1285
1382
|
const {
|
|
@@ -1304,9 +1401,9 @@ var EventListItemDetails = (props) => {
|
|
|
1304
1401
|
ariaLabel: ariaLabelOverride,
|
|
1305
1402
|
defaultTimeRange: defaultTimeRangeOverride
|
|
1306
1403
|
};
|
|
1307
|
-
return /* @__PURE__ */
|
|
1404
|
+
return /* @__PURE__ */ jsx3(EventListItemDetailsByEventId, __spreadValues({}, byEventIdProps));
|
|
1308
1405
|
}
|
|
1309
|
-
return /* @__PURE__ */
|
|
1406
|
+
return /* @__PURE__ */ jsx3(
|
|
1310
1407
|
EventListItemDetailsUnavailableState,
|
|
1311
1408
|
{
|
|
1312
1409
|
classNames: props.classNames,
|
|
@@ -1317,10 +1414,10 @@ var EventListItemDetails = (props) => {
|
|
|
1317
1414
|
EventListItemDetails.displayName = "EventListItemDetails";
|
|
1318
1415
|
|
|
1319
1416
|
// src/events/market-details/index.tsx
|
|
1320
|
-
import { useEffect as useEffect2, useId, useMemo as
|
|
1417
|
+
import { useEffect as useEffect2, useId, useMemo as useMemo4, useState as useState2 } from "react";
|
|
1321
1418
|
import {
|
|
1322
1419
|
useEvent as useEvent3,
|
|
1323
|
-
useLabels as
|
|
1420
|
+
useLabels as useLabels4,
|
|
1324
1421
|
useOrderBook,
|
|
1325
1422
|
usePriceHistory as usePriceHistory2,
|
|
1326
1423
|
useSdkUiConfig as useSdkUiConfig3
|
|
@@ -1556,14 +1653,14 @@ var buildMarketDetailsModel = ({
|
|
|
1556
1653
|
};
|
|
1557
1654
|
|
|
1558
1655
|
// src/events/market-details/index.tsx
|
|
1559
|
-
import { Fragment, jsx as
|
|
1656
|
+
import { Fragment, jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
1560
1657
|
var MarketDetailsLoadingState = ({
|
|
1561
1658
|
isOpened = marketDetailsDefaultIsOpened,
|
|
1562
1659
|
ariaLabel,
|
|
1563
1660
|
classNames
|
|
1564
1661
|
}) => {
|
|
1565
|
-
const labels =
|
|
1566
|
-
return /* @__PURE__ */
|
|
1662
|
+
const labels = useLabels4();
|
|
1663
|
+
return /* @__PURE__ */ jsx4(
|
|
1567
1664
|
Skeleton,
|
|
1568
1665
|
{
|
|
1569
1666
|
view: isOpened ? "market-details-detailed" : "market-details-minified",
|
|
@@ -1576,16 +1673,16 @@ var MarketDetailsUnavailableState = ({
|
|
|
1576
1673
|
ariaLabel,
|
|
1577
1674
|
classNames
|
|
1578
1675
|
}) => {
|
|
1579
|
-
const labels =
|
|
1580
|
-
return /* @__PURE__ */
|
|
1676
|
+
const labels = useLabels4();
|
|
1677
|
+
return /* @__PURE__ */ jsx4(
|
|
1581
1678
|
Card,
|
|
1582
1679
|
{
|
|
1583
1680
|
className: cn(marketDetailsBaseCardClassName, classNames == null ? void 0 : classNames.root),
|
|
1584
1681
|
role: "status",
|
|
1585
1682
|
"aria-label": ariaLabel != null ? ariaLabel : labels.marketDetails.unavailableAria,
|
|
1586
1683
|
children: /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-1 p-5", children: [
|
|
1587
|
-
/* @__PURE__ */
|
|
1588
|
-
/* @__PURE__ */
|
|
1684
|
+
/* @__PURE__ */ jsx4(Typography, { variant: "body-large-strong", children: labels.marketDetails.unavailableTitle }),
|
|
1685
|
+
/* @__PURE__ */ jsx4(Typography, { variant: "label", className: "text-agg-muted-foreground", children: labels.marketDetails.unavailableDescription })
|
|
1589
1686
|
] })
|
|
1590
1687
|
}
|
|
1591
1688
|
);
|
|
@@ -1594,8 +1691,8 @@ var MarketDetailsNotFoundState = ({
|
|
|
1594
1691
|
ariaLabel,
|
|
1595
1692
|
classNames
|
|
1596
1693
|
}) => {
|
|
1597
|
-
const labels =
|
|
1598
|
-
return /* @__PURE__ */
|
|
1694
|
+
const labels = useLabels4();
|
|
1695
|
+
return /* @__PURE__ */ jsx4(Card, { className: cn(marketDetailsBaseCardClassName, "p-0", classNames == null ? void 0 : classNames.root), children: /* @__PURE__ */ jsx4(
|
|
1599
1696
|
StateMessage,
|
|
1600
1697
|
{
|
|
1601
1698
|
ariaLabel: ariaLabel != null ? ariaLabel : labels.marketDetails.notFoundAria,
|
|
@@ -1612,7 +1709,7 @@ var OrderBookRows = ({
|
|
|
1612
1709
|
formatCurrency,
|
|
1613
1710
|
visibleRows
|
|
1614
1711
|
}) => {
|
|
1615
|
-
const labels =
|
|
1712
|
+
const labels = useLabels4();
|
|
1616
1713
|
const isAsks = title === labels.marketDetails.asks;
|
|
1617
1714
|
const priceClassName = isAsks ? "text-agg-orderbook-ask" : "text-agg-orderbook-bid";
|
|
1618
1715
|
const barClassName = isAsks ? "bg-agg-orderbook-ask/10" : "bg-agg-orderbook-bid/10";
|
|
@@ -1622,8 +1719,8 @@ var OrderBookRows = ({
|
|
|
1622
1719
|
const orderBookRowGapPx = 8;
|
|
1623
1720
|
const orderBookVisibleHeightPx = maxVisibleRows * orderBookRowHeightPx + Math.max(0, maxVisibleRows - 1) * (orderBookDividerHeightPx + orderBookRowGapPx);
|
|
1624
1721
|
return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-2", children: [
|
|
1625
|
-
/* @__PURE__ */
|
|
1626
|
-
/* @__PURE__ */
|
|
1722
|
+
/* @__PURE__ */ jsx4(Typography, { variant: "caption-caps", children: title }),
|
|
1723
|
+
/* @__PURE__ */ jsx4(
|
|
1627
1724
|
"div",
|
|
1628
1725
|
{
|
|
1629
1726
|
className: "overflow-y-auto pr-1 flex flex-col gap-2",
|
|
@@ -1633,8 +1730,8 @@ var OrderBookRows = ({
|
|
|
1633
1730
|
children: rows.map((row, index) => /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-2", children: [
|
|
1634
1731
|
/* @__PURE__ */ jsxs3("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: [
|
|
1635
1732
|
/* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-1 md:gap-3", children: [
|
|
1636
|
-
/* @__PURE__ */
|
|
1637
|
-
/* @__PURE__ */
|
|
1733
|
+
/* @__PURE__ */ jsx4(VenueLogo, { venue: row.venue, size: "small" }),
|
|
1734
|
+
/* @__PURE__ */ jsx4(
|
|
1638
1735
|
"span",
|
|
1639
1736
|
{
|
|
1640
1737
|
className: cn(
|
|
@@ -1645,9 +1742,9 @@ var OrderBookRows = ({
|
|
|
1645
1742
|
}
|
|
1646
1743
|
)
|
|
1647
1744
|
] }),
|
|
1648
|
-
/* @__PURE__ */
|
|
1649
|
-
/* @__PURE__ */
|
|
1650
|
-
/* @__PURE__ */
|
|
1745
|
+
/* @__PURE__ */ jsx4("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) }),
|
|
1746
|
+
/* @__PURE__ */ jsx4("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) }),
|
|
1747
|
+
/* @__PURE__ */ jsx4("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx4(
|
|
1651
1748
|
"div",
|
|
1652
1749
|
{
|
|
1653
1750
|
"aria-hidden": "true",
|
|
@@ -1658,7 +1755,7 @@ var OrderBookRows = ({
|
|
|
1658
1755
|
}
|
|
1659
1756
|
) })
|
|
1660
1757
|
] }),
|
|
1661
|
-
index < rows.length - 1 ? /* @__PURE__ */
|
|
1758
|
+
index < rows.length - 1 ? /* @__PURE__ */ jsx4("div", { className: "h-px w-full bg-agg-separator" }) : null
|
|
1662
1759
|
] }, row.id))
|
|
1663
1760
|
}
|
|
1664
1761
|
)
|
|
@@ -1696,9 +1793,9 @@ var MarketDetailsContent = ({
|
|
|
1696
1793
|
otherContent
|
|
1697
1794
|
}) => {
|
|
1698
1795
|
const config = useSdkUiConfig3();
|
|
1699
|
-
const labels =
|
|
1796
|
+
const labels = useLabels4();
|
|
1700
1797
|
const detailsContentId = useId();
|
|
1701
|
-
const model =
|
|
1798
|
+
const model = useMemo4(() => {
|
|
1702
1799
|
return buildMarketDetailsModel({
|
|
1703
1800
|
event,
|
|
1704
1801
|
marketId,
|
|
@@ -1708,10 +1805,10 @@ var MarketDetailsContent = ({
|
|
|
1708
1805
|
labels
|
|
1709
1806
|
});
|
|
1710
1807
|
}, [config.formatCompactCurrency, event, image, labels, marketId, title]);
|
|
1711
|
-
const resolvedMarket =
|
|
1808
|
+
const resolvedMarket = useMemo4(() => {
|
|
1712
1809
|
return resolveMarket(event, marketId);
|
|
1713
1810
|
}, [event, marketId]);
|
|
1714
|
-
const marketDetailsTabs =
|
|
1811
|
+
const marketDetailsTabs = useMemo4(() => {
|
|
1715
1812
|
return getMarketDetailsTabs(labels);
|
|
1716
1813
|
}, [labels]);
|
|
1717
1814
|
const [selectedTab, setSelectedTab] = useState2(
|
|
@@ -1722,6 +1819,7 @@ var MarketDetailsContent = ({
|
|
|
1722
1819
|
setSelectedTab(resolveInitialTab(defaultTab));
|
|
1723
1820
|
}, [defaultTab]);
|
|
1724
1821
|
const [selectedTimeRange, setSelectedTimeRange] = useState2(defaultTimeRange);
|
|
1822
|
+
const [selectedChartType, setSelectedChartType] = useState2("line");
|
|
1725
1823
|
useEffect2(() => {
|
|
1726
1824
|
setSelectedTimeRange(defaultTimeRange);
|
|
1727
1825
|
}, [defaultTimeRange]);
|
|
@@ -1738,17 +1836,17 @@ var MarketDetailsContent = ({
|
|
|
1738
1836
|
resolveInitialOutcomeLabel((_a = model == null ? void 0 : model.outcomeLabels) != null ? _a : [], defaultOutcomeLabel)
|
|
1739
1837
|
);
|
|
1740
1838
|
}, [defaultOutcomeLabel, model == null ? void 0 : model.outcomeLabels]);
|
|
1741
|
-
const headerOutcomeItems =
|
|
1839
|
+
const headerOutcomeItems = useMemo4(() => {
|
|
1742
1840
|
if (!model)
|
|
1743
1841
|
return [];
|
|
1744
1842
|
return resolveHeaderOutcomeItems(model.market.venueMarkets, selectedOutcomeLabel);
|
|
1745
1843
|
}, [model, selectedOutcomeLabel]);
|
|
1746
|
-
const headlineProbability =
|
|
1844
|
+
const headlineProbability = useMemo4(() => {
|
|
1747
1845
|
if (!model || !selectedOutcomeLabel)
|
|
1748
1846
|
return void 0;
|
|
1749
1847
|
return model.probabilityByLabel.get(selectedOutcomeLabel);
|
|
1750
1848
|
}, [model, selectedOutcomeLabel]);
|
|
1751
|
-
const outcomesByLabel =
|
|
1849
|
+
const outcomesByLabel = useMemo4(() => {
|
|
1752
1850
|
const outcomesByLabelMap = /* @__PURE__ */ new Map();
|
|
1753
1851
|
if (!model) {
|
|
1754
1852
|
return outcomesByLabelMap;
|
|
@@ -1761,16 +1859,16 @@ var MarketDetailsContent = ({
|
|
|
1761
1859
|
});
|
|
1762
1860
|
return outcomesByLabelMap;
|
|
1763
1861
|
}, [headerOutcomeItems, model]);
|
|
1764
|
-
const selectedOutcomesByVenue =
|
|
1862
|
+
const selectedOutcomesByVenue = useMemo4(() => {
|
|
1765
1863
|
var _a;
|
|
1766
1864
|
if (!selectedOutcomeLabel)
|
|
1767
1865
|
return [];
|
|
1768
1866
|
return (_a = outcomesByLabel.get(selectedOutcomeLabel)) != null ? _a : [];
|
|
1769
1867
|
}, [outcomesByLabel, selectedOutcomeLabel]);
|
|
1770
|
-
const timeWindow =
|
|
1868
|
+
const timeWindow = useMemo4(() => {
|
|
1771
1869
|
return getTimeWindowByRange(selectedTimeRange);
|
|
1772
1870
|
}, [selectedTimeRange]);
|
|
1773
|
-
const graphOutcomes =
|
|
1871
|
+
const graphOutcomes = useMemo4(() => {
|
|
1774
1872
|
const uniqueOutcomesByVenueAndId = /* @__PURE__ */ new Map();
|
|
1775
1873
|
outcomesByLabel.forEach((outcomes) => {
|
|
1776
1874
|
outcomes.forEach((outcomeByVenue) => {
|
|
@@ -1783,7 +1881,7 @@ var MarketDetailsContent = ({
|
|
|
1783
1881
|
return [...uniqueOutcomesByVenueAndId.values()];
|
|
1784
1882
|
}, [outcomesByLabel]);
|
|
1785
1883
|
const canonicalMarketIdForHistory = model == null ? void 0 : model.market.id;
|
|
1786
|
-
const priceHistoryGroups =
|
|
1884
|
+
const priceHistoryGroups = useMemo4(() => {
|
|
1787
1885
|
return buildPriceHistoryGroups(graphOutcomes, canonicalMarketIdForHistory);
|
|
1788
1886
|
}, [canonicalMarketIdForHistory, graphOutcomes]);
|
|
1789
1887
|
const { data: priceHistoryData, isLoading: isPriceHistoryLoading } = usePriceHistory2(__spreadProps(__spreadValues({
|
|
@@ -1791,7 +1889,7 @@ var MarketDetailsContent = ({
|
|
|
1791
1889
|
}, timeWindow), {
|
|
1792
1890
|
enabled: isOpened && selectedTab === "graph" && priceHistoryGroups.length > 0
|
|
1793
1891
|
}));
|
|
1794
|
-
const orderBookInputs =
|
|
1892
|
+
const orderBookInputs = useMemo4(() => {
|
|
1795
1893
|
return selectedOutcomesByVenue.map(({ market, outcome }) => ({
|
|
1796
1894
|
market,
|
|
1797
1895
|
outcome,
|
|
@@ -1807,19 +1905,19 @@ var MarketDetailsContent = ({
|
|
|
1807
1905
|
orderbooks: orderBookInputs,
|
|
1808
1906
|
enabled: isOpened && selectedTab === "order-book" && orderBookInputs.length > 0
|
|
1809
1907
|
});
|
|
1810
|
-
const askRows =
|
|
1908
|
+
const askRows = useMemo4(() => {
|
|
1811
1909
|
return resolveOrderBookRows({
|
|
1812
1910
|
data: orderBookData,
|
|
1813
1911
|
side: "asks"
|
|
1814
1912
|
});
|
|
1815
1913
|
}, [orderBookData]);
|
|
1816
|
-
const bidRows =
|
|
1914
|
+
const bidRows = useMemo4(() => {
|
|
1817
1915
|
return resolveOrderBookRows({
|
|
1818
1916
|
data: orderBookData,
|
|
1819
1917
|
side: "bids"
|
|
1820
1918
|
});
|
|
1821
1919
|
}, [orderBookData]);
|
|
1822
|
-
const priceHistoryByVenue =
|
|
1920
|
+
const priceHistoryByVenue = useMemo4(() => {
|
|
1823
1921
|
const historyByVenue = /* @__PURE__ */ new Map();
|
|
1824
1922
|
if (!(priceHistoryData == null ? void 0 : priceHistoryData.length)) {
|
|
1825
1923
|
return historyByVenue;
|
|
@@ -1835,7 +1933,7 @@ var MarketDetailsContent = ({
|
|
|
1835
1933
|
});
|
|
1836
1934
|
return historyByVenue;
|
|
1837
1935
|
}, [priceHistoryData]);
|
|
1838
|
-
const graphSeriesByOutcomeLabel =
|
|
1936
|
+
const graphSeriesByOutcomeLabel = useMemo4(() => {
|
|
1839
1937
|
const seriesByOutcomeLabel = /* @__PURE__ */ new Map();
|
|
1840
1938
|
const resolveOutcomeCandidateIds2 = (outcomeByVenue) => {
|
|
1841
1939
|
var _a, _b;
|
|
@@ -1863,7 +1961,11 @@ var MarketDetailsContent = ({
|
|
|
1863
1961
|
return;
|
|
1864
1962
|
const points = matchingHistory.points.map((point) => ({
|
|
1865
1963
|
time: point.timestamp,
|
|
1866
|
-
value: point.price * 100
|
|
1964
|
+
value: point.price * 100,
|
|
1965
|
+
open: point.open == null ? void 0 : point.open * 100,
|
|
1966
|
+
high: point.high == null ? void 0 : point.high * 100,
|
|
1967
|
+
low: point.low == null ? void 0 : point.low * 100,
|
|
1968
|
+
close: point.close == null ? void 0 : point.close * 100
|
|
1867
1969
|
})).filter((point) => Number.isFinite(point.time) && Number.isFinite(point.value));
|
|
1868
1970
|
if (points.length === 0)
|
|
1869
1971
|
return;
|
|
@@ -1878,7 +1980,7 @@ var MarketDetailsContent = ({
|
|
|
1878
1980
|
});
|
|
1879
1981
|
return seriesByOutcomeLabel;
|
|
1880
1982
|
}, [canonicalMarketIdForHistory, headerOutcomeItems, outcomesByLabel, priceHistoryByVenue]);
|
|
1881
|
-
const graphSeries =
|
|
1983
|
+
const graphSeries = useMemo4(() => {
|
|
1882
1984
|
var _a;
|
|
1883
1985
|
if (!selectedOutcomeLabel)
|
|
1884
1986
|
return [];
|
|
@@ -1887,7 +1989,7 @@ var MarketDetailsContent = ({
|
|
|
1887
1989
|
return seriesForOutcomeLabel;
|
|
1888
1990
|
return seriesForOutcomeLabel.filter((seriesItem) => seriesItem.venue === selectedGraphVenue);
|
|
1889
1991
|
}, [graphSeriesByOutcomeLabel, selectedGraphVenue, selectedOutcomeLabel]);
|
|
1890
|
-
const otherRows =
|
|
1992
|
+
const otherRows = useMemo4(() => {
|
|
1891
1993
|
if (!model)
|
|
1892
1994
|
return [];
|
|
1893
1995
|
return resolveOtherTabRows(model.market, labels);
|
|
@@ -1941,10 +2043,10 @@ var MarketDetailsContent = ({
|
|
|
1941
2043
|
setSelectedGraphVenue(null);
|
|
1942
2044
|
}, [selectedGraphVenue, selectedOutcomesByVenue]);
|
|
1943
2045
|
if (marketId && !resolvedMarket) {
|
|
1944
|
-
return /* @__PURE__ */
|
|
2046
|
+
return /* @__PURE__ */ jsx4(MarketDetailsNotFoundState, { ariaLabel, classNames });
|
|
1945
2047
|
}
|
|
1946
2048
|
if (!model) {
|
|
1947
|
-
return /* @__PURE__ */
|
|
2049
|
+
return /* @__PURE__ */ jsx4(MarketDetailsUnavailableState, { ariaLabel, classNames });
|
|
1948
2050
|
}
|
|
1949
2051
|
return /* @__PURE__ */ jsxs3(
|
|
1950
2052
|
Card,
|
|
@@ -1973,7 +2075,7 @@ var MarketDetailsContent = ({
|
|
|
1973
2075
|
onKeyDown: handleToggleExpanded,
|
|
1974
2076
|
children: [
|
|
1975
2077
|
/* @__PURE__ */ jsxs3("div", { className: "flex min-w-52 items-center gap-3 md:gap-4", children: [
|
|
1976
|
-
model.image ? /* @__PURE__ */
|
|
2078
|
+
model.image ? /* @__PURE__ */ jsx4(
|
|
1977
2079
|
"img",
|
|
1978
2080
|
{
|
|
1979
2081
|
src: model.image,
|
|
@@ -1982,12 +2084,12 @@ var MarketDetailsContent = ({
|
|
|
1982
2084
|
}
|
|
1983
2085
|
) : null,
|
|
1984
2086
|
/* @__PURE__ */ jsxs3("div", { className: "flex min-w-0 flex-col", children: [
|
|
1985
|
-
/* @__PURE__ */
|
|
1986
|
-
/* @__PURE__ */
|
|
2087
|
+
/* @__PURE__ */ jsx4(Typography, { as: "h3", variant: "body-large-strong", className: "truncate", children: model.title }),
|
|
2088
|
+
/* @__PURE__ */ jsx4("div", { className: "flex items-center gap-3", children: /* @__PURE__ */ jsx4(Typography, { variant: "label", className: "truncate text-agg-muted-foreground", children: model.subtitle }) })
|
|
1987
2089
|
] })
|
|
1988
2090
|
] }),
|
|
1989
|
-
/* @__PURE__ */
|
|
1990
|
-
/* @__PURE__ */
|
|
2091
|
+
/* @__PURE__ */ jsx4(Typography, { as: "div", variant: "heading", className: "shrink-0", children: formatProbabilityPercent(headlineProbability) }),
|
|
2092
|
+
/* @__PURE__ */ jsx4(
|
|
1991
2093
|
"div",
|
|
1992
2094
|
{
|
|
1993
2095
|
className: "flex gap-2",
|
|
@@ -1998,7 +2100,7 @@ var MarketDetailsContent = ({
|
|
|
1998
2100
|
children: headerOutcomeItems.map((item) => {
|
|
1999
2101
|
const isPositive = item.tone === "positive";
|
|
2000
2102
|
const isActiveOutcome = item.label === selectedOutcomeLabel;
|
|
2001
|
-
return /* @__PURE__ */
|
|
2103
|
+
return /* @__PURE__ */ jsx4(
|
|
2002
2104
|
"button",
|
|
2003
2105
|
{
|
|
2004
2106
|
type: "button",
|
|
@@ -2016,7 +2118,7 @@ var MarketDetailsContent = ({
|
|
|
2016
2118
|
setSelectedOutcomeLabel(item.label);
|
|
2017
2119
|
},
|
|
2018
2120
|
children: /* @__PURE__ */ jsxs3("span", { className: "inline-flex items-center gap-2", children: [
|
|
2019
|
-
/* @__PURE__ */
|
|
2121
|
+
/* @__PURE__ */ jsx4(
|
|
2020
2122
|
VenueLogo,
|
|
2021
2123
|
{
|
|
2022
2124
|
venue: isPositive ? "polymarket" : "probable",
|
|
@@ -2024,7 +2126,7 @@ var MarketDetailsContent = ({
|
|
|
2024
2126
|
color: isActiveOutcome ? "var(--agg-color-on-primary)" : void 0
|
|
2025
2127
|
}
|
|
2026
2128
|
),
|
|
2027
|
-
/* @__PURE__ */
|
|
2129
|
+
/* @__PURE__ */ jsx4(
|
|
2028
2130
|
Typography,
|
|
2029
2131
|
{
|
|
2030
2132
|
variant: isActiveOutcome ? "body-strong" : "body",
|
|
@@ -2045,7 +2147,7 @@ var MarketDetailsContent = ({
|
|
|
2045
2147
|
]
|
|
2046
2148
|
}
|
|
2047
2149
|
),
|
|
2048
|
-
/* @__PURE__ */
|
|
2150
|
+
/* @__PURE__ */ jsx4(
|
|
2049
2151
|
"div",
|
|
2050
2152
|
{
|
|
2051
2153
|
id: detailsContentId,
|
|
@@ -2056,7 +2158,7 @@ var MarketDetailsContent = ({
|
|
|
2056
2158
|
),
|
|
2057
2159
|
"aria-hidden": !isOpened,
|
|
2058
2160
|
children: /* @__PURE__ */ jsxs3("div", { className: "min-h-0", children: [
|
|
2059
|
-
/* @__PURE__ */
|
|
2161
|
+
/* @__PURE__ */ jsx4("div", { className: "h-px w-full bg-agg-separator" }),
|
|
2060
2162
|
/* @__PURE__ */ jsxs3(
|
|
2061
2163
|
"div",
|
|
2062
2164
|
{
|
|
@@ -2071,7 +2173,7 @@ var MarketDetailsContent = ({
|
|
|
2071
2173
|
) : "translate-y-5 opacity-0"
|
|
2072
2174
|
),
|
|
2073
2175
|
children: [
|
|
2074
|
-
/* @__PURE__ */
|
|
2176
|
+
/* @__PURE__ */ jsx4("div", { className: cn("block", classNames == null ? void 0 : classNames.tabs), children: /* @__PURE__ */ jsx4(
|
|
2075
2177
|
Tabs,
|
|
2076
2178
|
{
|
|
2077
2179
|
ariaLabel: labels.marketDetails.tabsAria,
|
|
@@ -2082,9 +2184,9 @@ var MarketDetailsContent = ({
|
|
|
2082
2184
|
className: "w-full px-5"
|
|
2083
2185
|
}
|
|
2084
2186
|
) }),
|
|
2085
|
-
/* @__PURE__ */
|
|
2187
|
+
/* @__PURE__ */ jsx4("div", { className: "h-px w-full bg-agg-separator" }),
|
|
2086
2188
|
/* @__PURE__ */ jsxs3("div", { className: cn("p-5", classNames == null ? void 0 : classNames.content), children: [
|
|
2087
|
-
selectedTab === "order-book" ? /* @__PURE__ */
|
|
2189
|
+
selectedTab === "order-book" ? /* @__PURE__ */ jsx4("div", { className: cn("flex flex-col gap-5", classNames == null ? void 0 : classNames.orderBook), children: isOrderBookLoading ? /* @__PURE__ */ jsx4(MarketDetailsOderbookSkeleton, {}) : hasOrderBookError ? /* @__PURE__ */ jsx4(
|
|
2088
2190
|
StateMessage,
|
|
2089
2191
|
{
|
|
2090
2192
|
ariaLabel: labels.marketDetails.orderBookUnavailableAria,
|
|
@@ -2095,7 +2197,7 @@ var MarketDetailsContent = ({
|
|
|
2095
2197
|
onAction: handleRetryOrderBook,
|
|
2096
2198
|
className: "min-h-[248px] px-5 py-10 md:min-h-[272px]"
|
|
2097
2199
|
}
|
|
2098
|
-
) : hasNoOrderBook ? /* @__PURE__ */
|
|
2200
|
+
) : hasNoOrderBook ? /* @__PURE__ */ jsx4(
|
|
2099
2201
|
StateMessage,
|
|
2100
2202
|
{
|
|
2101
2203
|
ariaLabel: labels.marketDetails.orderBookEmptyAria,
|
|
@@ -2104,7 +2206,7 @@ var MarketDetailsContent = ({
|
|
|
2104
2206
|
className: "min-h-[248px] px-5 py-10 md:min-h-[272px]"
|
|
2105
2207
|
}
|
|
2106
2208
|
) : /* @__PURE__ */ jsxs3(Fragment, { children: [
|
|
2107
|
-
/* @__PURE__ */
|
|
2209
|
+
/* @__PURE__ */ jsx4(
|
|
2108
2210
|
OrderBookRows,
|
|
2109
2211
|
{
|
|
2110
2212
|
rows: askRows,
|
|
@@ -2114,7 +2216,7 @@ var MarketDetailsContent = ({
|
|
|
2114
2216
|
visibleRows: orderBookDepth
|
|
2115
2217
|
}
|
|
2116
2218
|
),
|
|
2117
|
-
/* @__PURE__ */
|
|
2219
|
+
/* @__PURE__ */ jsx4(
|
|
2118
2220
|
OrderBookRows,
|
|
2119
2221
|
{
|
|
2120
2222
|
rows: bidRows,
|
|
@@ -2126,17 +2228,18 @@ var MarketDetailsContent = ({
|
|
|
2126
2228
|
)
|
|
2127
2229
|
] }) }) : null,
|
|
2128
2230
|
selectedTab === "graph" ? /* @__PURE__ */ jsxs3("div", { className: cn("flex flex-col gap-5", classNames == null ? void 0 : classNames.graph), children: [
|
|
2129
|
-
/* @__PURE__ */
|
|
2231
|
+
/* @__PURE__ */ jsx4(
|
|
2130
2232
|
LineChart,
|
|
2131
2233
|
{
|
|
2132
2234
|
series: graphSeries,
|
|
2133
2235
|
height: 260,
|
|
2134
2236
|
isLoading: isPriceHistoryLoading,
|
|
2237
|
+
chartType: selectedChartType,
|
|
2135
2238
|
classNames: { root: "w-full" },
|
|
2136
2239
|
showSeriesControls: selectedOutcomesByVenue.length > 0 || headerOutcomeItems.length > 0,
|
|
2137
2240
|
renderSeriesControls: () => {
|
|
2138
2241
|
return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between", children: [
|
|
2139
|
-
/* @__PURE__ */
|
|
2242
|
+
/* @__PURE__ */ jsx4("div", { className: "flex flex-wrap gap-2", children: selectedOutcomesByVenue.map((item) => {
|
|
2140
2243
|
const probability = formatProbabilityPercent(item.outcome.price);
|
|
2141
2244
|
const isActiveVenue = selectedGraphVenue === item.venue;
|
|
2142
2245
|
return /* @__PURE__ */ jsxs3(
|
|
@@ -2156,14 +2259,14 @@ var MarketDetailsContent = ({
|
|
|
2156
2259
|
handleGraphVenueToggle(item.venue);
|
|
2157
2260
|
},
|
|
2158
2261
|
children: [
|
|
2159
|
-
/* @__PURE__ */
|
|
2160
|
-
/* @__PURE__ */
|
|
2262
|
+
/* @__PURE__ */ jsx4(VenueLogo, { venue: item.venue, size: "small" }),
|
|
2263
|
+
/* @__PURE__ */ jsx4("span", { className: "text-agg-base leading-agg-6 text-agg-foreground", children: probability })
|
|
2161
2264
|
]
|
|
2162
2265
|
},
|
|
2163
2266
|
`${item.market.id}-${item.outcome.id}`
|
|
2164
2267
|
);
|
|
2165
2268
|
}) }),
|
|
2166
|
-
/* @__PURE__ */
|
|
2269
|
+
/* @__PURE__ */ jsx4(
|
|
2167
2270
|
SwitchButton,
|
|
2168
2271
|
{
|
|
2169
2272
|
ariaLabel: labels.marketDetails.outcomeSelectorAria,
|
|
@@ -2189,39 +2292,56 @@ var MarketDetailsContent = ({
|
|
|
2189
2292
|
classNames == null ? void 0 : classNames.footer
|
|
2190
2293
|
),
|
|
2191
2294
|
children: [
|
|
2192
|
-
/* @__PURE__ */
|
|
2193
|
-
/* @__PURE__ */
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2295
|
+
/* @__PURE__ */ jsx4("span", { children: typeof model.market.volume === "number" ? `${config.formatCompactCurrency(model.market.volume)} ${labels.marketDetails.meta.volumeSuffix}` : labels.marketDetails.volumeUnavailable }),
|
|
2296
|
+
/* @__PURE__ */ jsxs3("div", { className: "flex flex-wrap items-center gap-3 md:gap-4", children: [
|
|
2297
|
+
/* @__PURE__ */ jsx4(
|
|
2298
|
+
ChartTypeSwitch,
|
|
2299
|
+
{
|
|
2300
|
+
className: "shrink-0",
|
|
2301
|
+
value: selectedChartType,
|
|
2302
|
+
onValueChange: setSelectedChartType
|
|
2303
|
+
}
|
|
2304
|
+
),
|
|
2305
|
+
/* @__PURE__ */ jsx4(
|
|
2306
|
+
"span",
|
|
2197
2307
|
{
|
|
2198
|
-
|
|
2199
|
-
className:
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2308
|
+
"aria-hidden": "true",
|
|
2309
|
+
className: "hidden h-4 w-px bg-agg-separator md:block"
|
|
2310
|
+
}
|
|
2311
|
+
),
|
|
2312
|
+
eventListItemDetailsTimeRanges.map((timeRange) => {
|
|
2313
|
+
const isActive = selectedTimeRange === timeRange;
|
|
2314
|
+
return /* @__PURE__ */ jsx4(
|
|
2315
|
+
"button",
|
|
2316
|
+
{
|
|
2317
|
+
type: "button",
|
|
2318
|
+
className: cn(
|
|
2319
|
+
"cursor-pointer text-agg-sm leading-agg-5",
|
|
2320
|
+
isActive ? "font-agg-bold text-agg-foreground" : "font-agg-normal text-agg-muted-foreground"
|
|
2321
|
+
),
|
|
2322
|
+
"aria-pressed": isActive,
|
|
2323
|
+
onClick: (e) => {
|
|
2324
|
+
e.preventDefault();
|
|
2325
|
+
e.stopPropagation();
|
|
2326
|
+
setSelectedTimeRange(timeRange);
|
|
2327
|
+
},
|
|
2328
|
+
children: timeRange === "ALL" ? labels.eventItemDetails.allTimeRange : timeRange
|
|
2208
2329
|
},
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
}) })
|
|
2330
|
+
timeRange
|
|
2331
|
+
);
|
|
2332
|
+
})
|
|
2333
|
+
] })
|
|
2214
2334
|
]
|
|
2215
2335
|
}
|
|
2216
2336
|
)
|
|
2217
2337
|
] }) : null,
|
|
2218
|
-
selectedTab === "other" ? /* @__PURE__ */
|
|
2338
|
+
selectedTab === "other" ? /* @__PURE__ */ jsx4("div", { className: "flex flex-col gap-4", children: otherContent != null ? otherContent : /* @__PURE__ */ jsx4("div", { className: "grid grid-cols-1 gap-3", children: otherRows.map((row) => /* @__PURE__ */ jsxs3(
|
|
2219
2339
|
"div",
|
|
2220
2340
|
{
|
|
2221
2341
|
className: "flex items-center justify-between rounded-agg-xl bg-agg-secondary-hover px-4 py-3",
|
|
2222
2342
|
children: [
|
|
2223
|
-
/* @__PURE__ */
|
|
2224
|
-
/* @__PURE__ */
|
|
2343
|
+
/* @__PURE__ */ jsx4(Typography, { variant: "label", className: "text-agg-muted-foreground", children: row.label }),
|
|
2344
|
+
/* @__PURE__ */ jsx4(Typography, { variant: "body", className: "text-right", children: row.value })
|
|
2225
2345
|
]
|
|
2226
2346
|
},
|
|
2227
2347
|
row.label
|
|
@@ -2264,7 +2384,7 @@ var MarketDetails = (props) => {
|
|
|
2264
2384
|
enabled: !props.isLoading && !hasEventProp && !!props.eventId
|
|
2265
2385
|
});
|
|
2266
2386
|
if (props.isLoading) {
|
|
2267
|
-
return /* @__PURE__ */
|
|
2387
|
+
return /* @__PURE__ */ jsx4(
|
|
2268
2388
|
MarketDetailsLoadingState,
|
|
2269
2389
|
{
|
|
2270
2390
|
isOpened: resolvedIsOpened,
|
|
@@ -2274,7 +2394,7 @@ var MarketDetails = (props) => {
|
|
|
2274
2394
|
);
|
|
2275
2395
|
}
|
|
2276
2396
|
if ("event" in props && props.event) {
|
|
2277
|
-
return /* @__PURE__ */
|
|
2397
|
+
return /* @__PURE__ */ jsx4(
|
|
2278
2398
|
MarketDetailsContent,
|
|
2279
2399
|
__spreadProps(__spreadValues({}, props), {
|
|
2280
2400
|
isOpened: resolvedIsOpened,
|
|
@@ -2284,7 +2404,7 @@ var MarketDetails = (props) => {
|
|
|
2284
2404
|
);
|
|
2285
2405
|
}
|
|
2286
2406
|
if (isFetchingEvent) {
|
|
2287
|
-
return /* @__PURE__ */
|
|
2407
|
+
return /* @__PURE__ */ jsx4(
|
|
2288
2408
|
MarketDetailsLoadingState,
|
|
2289
2409
|
{
|
|
2290
2410
|
isOpened: resolvedIsOpened,
|
|
@@ -2295,11 +2415,11 @@ var MarketDetails = (props) => {
|
|
|
2295
2415
|
}
|
|
2296
2416
|
if (!fetchedEvent) {
|
|
2297
2417
|
if (isErrorWithStatus(eventError, 404)) {
|
|
2298
|
-
return /* @__PURE__ */
|
|
2418
|
+
return /* @__PURE__ */ jsx4(MarketDetailsNotFoundState, { ariaLabel: props.ariaLabel, classNames: props.classNames });
|
|
2299
2419
|
}
|
|
2300
|
-
return /* @__PURE__ */
|
|
2420
|
+
return /* @__PURE__ */ jsx4(MarketDetailsUnavailableState, { ariaLabel: props.ariaLabel, classNames: props.classNames });
|
|
2301
2421
|
}
|
|
2302
|
-
return /* @__PURE__ */
|
|
2422
|
+
return /* @__PURE__ */ jsx4(
|
|
2303
2423
|
MarketDetailsContent,
|
|
2304
2424
|
__spreadProps(__spreadValues({}, props), {
|
|
2305
2425
|
isOpened: resolvedIsOpened,
|
|
@@ -2311,8 +2431,8 @@ var MarketDetails = (props) => {
|
|
|
2311
2431
|
MarketDetails.displayName = "MarketDetails";
|
|
2312
2432
|
|
|
2313
2433
|
// src/events/list/index.tsx
|
|
2314
|
-
import { useCallback, useEffect as useEffect3, useMemo as
|
|
2315
|
-
import { useEvents, useLabels as
|
|
2434
|
+
import { useCallback, useEffect as useEffect3, useMemo as useMemo5, useRef, useState as useState3 } from "react";
|
|
2435
|
+
import { useEvents, useLabels as useLabels5 } from "@agg-market/hooks";
|
|
2316
2436
|
|
|
2317
2437
|
// src/events/list/event-list.constants.ts
|
|
2318
2438
|
var POLYMARKET_VENUE = "polymarket";
|
|
@@ -2363,14 +2483,14 @@ var resolveTabVenus = (tab) => {
|
|
|
2363
2483
|
};
|
|
2364
2484
|
|
|
2365
2485
|
// src/events/list/index.tsx
|
|
2366
|
-
import { jsx as
|
|
2486
|
+
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
2367
2487
|
var renderTabIcon = (tab, isActive) => {
|
|
2368
2488
|
if (tab.venueLogo) {
|
|
2369
|
-
return /* @__PURE__ */
|
|
2489
|
+
return /* @__PURE__ */ jsx5(VenueLogo, { venue: tab.venueLogo, size: "small" });
|
|
2370
2490
|
}
|
|
2371
2491
|
if (!tab.iconName)
|
|
2372
2492
|
return null;
|
|
2373
|
-
return /* @__PURE__ */
|
|
2493
|
+
return /* @__PURE__ */ jsx5(
|
|
2374
2494
|
Icon,
|
|
2375
2495
|
{
|
|
2376
2496
|
name: tab.iconName,
|
|
@@ -2415,21 +2535,21 @@ var EventList = ({
|
|
|
2415
2535
|
categoryIds
|
|
2416
2536
|
}) => {
|
|
2417
2537
|
var _a, _b;
|
|
2418
|
-
const labels =
|
|
2419
|
-
const defaultEventListTabs =
|
|
2538
|
+
const labels = useLabels5();
|
|
2539
|
+
const defaultEventListTabs = useMemo5(() => {
|
|
2420
2540
|
return getDefaultEventListTabs(labels);
|
|
2421
2541
|
}, [labels]);
|
|
2422
2542
|
const [activeTabValue, setActiveTabValue] = useState3(
|
|
2423
2543
|
(_b = (_a = defaultEventListTabs[0]) == null ? void 0 : _a.value) != null ? _b : "matched"
|
|
2424
2544
|
);
|
|
2425
2545
|
const [_shouldUseSelectOverflow, setShouldUseSelectOverflow] = useState3(false);
|
|
2426
|
-
const activeTab =
|
|
2546
|
+
const activeTab = useMemo5(() => {
|
|
2427
2547
|
return defaultEventListTabs.find((tab) => tab.value === activeTabValue);
|
|
2428
2548
|
}, [activeTabValue]);
|
|
2429
|
-
const venues =
|
|
2549
|
+
const venues = useMemo5(() => {
|
|
2430
2550
|
return resolveTabVenus(activeTab);
|
|
2431
2551
|
}, [activeTab]);
|
|
2432
|
-
const resolvedMaxVisibleItems =
|
|
2552
|
+
const resolvedMaxVisibleItems = useMemo5(() => {
|
|
2433
2553
|
if (!Number.isFinite(maxVisibleItems))
|
|
2434
2554
|
return void 0;
|
|
2435
2555
|
return Math.max(1, Math.floor(maxVisibleItems));
|
|
@@ -2442,16 +2562,16 @@ var EventList = ({
|
|
|
2442
2562
|
categoryIds,
|
|
2443
2563
|
limit: requestLimit
|
|
2444
2564
|
});
|
|
2445
|
-
const filteredEvents =
|
|
2565
|
+
const filteredEvents = useMemo5(() => {
|
|
2446
2566
|
return filterEventsByTabValue(events, activeTabValue);
|
|
2447
2567
|
}, [events, activeTabValue]);
|
|
2448
|
-
const tileEvents =
|
|
2568
|
+
const tileEvents = useMemo5(() => {
|
|
2449
2569
|
const normalizedEvents = filteredEvents.map((event) => mapEventToEventListItemEvent(event)).filter((event) => event != null);
|
|
2450
2570
|
if (resolvedMaxVisibleItems == null)
|
|
2451
2571
|
return normalizedEvents;
|
|
2452
2572
|
return normalizedEvents.slice(0, resolvedMaxVisibleItems);
|
|
2453
2573
|
}, [filteredEvents, resolvedMaxVisibleItems]);
|
|
2454
|
-
const tabsItems =
|
|
2574
|
+
const tabsItems = useMemo5(() => {
|
|
2455
2575
|
return defaultEventListTabs.map((tab) => {
|
|
2456
2576
|
const isActive = tab.value === activeTabValue;
|
|
2457
2577
|
return {
|
|
@@ -2540,7 +2660,7 @@ var EventList = ({
|
|
|
2540
2660
|
"md:[grid-template-columns:repeat(var(--agg-event-list-columns),minmax(0,1fr))]"
|
|
2541
2661
|
);
|
|
2542
2662
|
if (shouldRenderLoadingState) {
|
|
2543
|
-
return /* @__PURE__ */
|
|
2663
|
+
return /* @__PURE__ */ jsx5(Skeleton, { view: "event-list", ariaLabel: labels.eventList.loading(title) });
|
|
2544
2664
|
}
|
|
2545
2665
|
return /* @__PURE__ */ jsxs4("section", { className: "flex w-full flex-col gap-5", children: [
|
|
2546
2666
|
/* @__PURE__ */ jsxs4(
|
|
@@ -2549,8 +2669,8 @@ var EventList = ({
|
|
|
2549
2669
|
ref: headerRef,
|
|
2550
2670
|
className: "flex flex-col sm:flex-row w-full flex-nowrap items-start sm:items-center justify-between gap-2 sm:gap-4",
|
|
2551
2671
|
children: [
|
|
2552
|
-
/* @__PURE__ */
|
|
2553
|
-
/* @__PURE__ */
|
|
2672
|
+
/* @__PURE__ */ jsx5("div", { ref: titleRef, className: "min-w-0", children: /* @__PURE__ */ jsx5(Typography, { as: "h2", variant: "title", className: "truncate [&::first-letter]:uppercase", children: title }) }),
|
|
2673
|
+
/* @__PURE__ */ jsx5(
|
|
2554
2674
|
Tabs,
|
|
2555
2675
|
{
|
|
2556
2676
|
ariaLabel: labels.eventList.tabsAria(title),
|
|
@@ -2563,7 +2683,7 @@ var EventList = ({
|
|
|
2563
2683
|
}
|
|
2564
2684
|
),
|
|
2565
2685
|
/* @__PURE__ */ jsxs4("div", { className: gridClassName, style: gridStyle, children: [
|
|
2566
|
-
tileEvents.map((event) => /* @__PURE__ */
|
|
2686
|
+
tileEvents.map((event) => /* @__PURE__ */ jsx5(
|
|
2567
2687
|
EventListItem,
|
|
2568
2688
|
{
|
|
2569
2689
|
event,
|
|
@@ -2574,7 +2694,7 @@ var EventList = ({
|
|
|
2574
2694
|
},
|
|
2575
2695
|
event.id
|
|
2576
2696
|
)),
|
|
2577
|
-
Array.from({ length: loadingPlaceholderCount }).map((_, index) => /* @__PURE__ */
|
|
2697
|
+
Array.from({ length: loadingPlaceholderCount }).map((_, index) => /* @__PURE__ */ jsx5(
|
|
2578
2698
|
EventListItem,
|
|
2579
2699
|
{
|
|
2580
2700
|
isLoading: true,
|
|
@@ -2584,7 +2704,7 @@ var EventList = ({
|
|
|
2584
2704
|
},
|
|
2585
2705
|
`loading-${index}`
|
|
2586
2706
|
)),
|
|
2587
|
-
!isLoading && !isError && (tileEvents == null ? void 0 : tileEvents.length) === 0 ? /* @__PURE__ */
|
|
2707
|
+
!isLoading && !isError && (tileEvents == null ? void 0 : tileEvents.length) === 0 ? /* @__PURE__ */ jsx5(Card, { className: "col-span-full overflow-hidden shadow-none hover:shadow-none", children: /* @__PURE__ */ jsx5(
|
|
2588
2708
|
StateMessage,
|
|
2589
2709
|
{
|
|
2590
2710
|
ariaLabel: labels.eventList.emptyAria,
|
|
@@ -2593,7 +2713,7 @@ var EventList = ({
|
|
|
2593
2713
|
className: "min-h-[320px]"
|
|
2594
2714
|
}
|
|
2595
2715
|
) }) : null,
|
|
2596
|
-
isError ? /* @__PURE__ */
|
|
2716
|
+
isError ? /* @__PURE__ */ jsx5(
|
|
2597
2717
|
Typography,
|
|
2598
2718
|
{
|
|
2599
2719
|
variant: "body",
|
|
@@ -2602,7 +2722,7 @@ var EventList = ({
|
|
|
2602
2722
|
}
|
|
2603
2723
|
) : null
|
|
2604
2724
|
] }),
|
|
2605
|
-
shouldPaginate && hasNextPage ? /* @__PURE__ */
|
|
2725
|
+
shouldPaginate && hasNextPage ? /* @__PURE__ */ jsx5("div", { ref: loadMoreRef, className: "h-px w-full", "aria-hidden": true }) : null
|
|
2606
2726
|
] });
|
|
2607
2727
|
};
|
|
2608
2728
|
EventList.displayName = "EventList";
|