@agg-build/ui 2.6.0 → 2.7.1
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/{chunk-XAG432PJ.mjs → chunk-BVNXMHSL.mjs} +4 -1
- package/dist/{chunk-TQL5I4GX.mjs → chunk-KFNTS2TV.mjs} +40 -10
- package/dist/{chunk-FAU2VOL6.mjs → chunk-O27JUYCF.mjs} +36 -25
- package/dist/events.js +4 -1
- package/dist/events.mjs +1 -1
- package/dist/index.js +78 -34
- package/dist/index.mjs +3 -3
- package/dist/pages.js +78 -34
- package/dist/pages.mjs +3 -3
- package/dist/trading.js +36 -25
- package/dist/trading.mjs +1 -1
- package/dist/types/pages/event-market/sports-event-market.utils.d.mts +12 -2
- package/dist/types/pages/event-market/sports-event-market.utils.d.ts +12 -2
- package/dist/types/trading/place-order/index.place-order.utils.d.mts +9 -0
- package/dist/types/trading/place-order/index.place-order.utils.d.ts +9 -0
- package/package.json +2 -2
|
@@ -4908,7 +4908,10 @@ var MarketDetailsList = ({
|
|
|
4908
4908
|
} = useVenueMarkets2({
|
|
4909
4909
|
venueEventId: resolvedEventId,
|
|
4910
4910
|
enabled: !providedMarkets && !!resolvedEventId,
|
|
4911
|
-
status: MarketStatus.open
|
|
4911
|
+
status: MarketStatus.open,
|
|
4912
|
+
// Keep in lockstep with useEnrichedVenueEvent: limit is part of the React
|
|
4913
|
+
// Query key, so a mismatch would fork the shared cache into two requests.
|
|
4914
|
+
limit: 40
|
|
4912
4915
|
// No explicit sortBy: event-scoped /venue-markets sorts by the event's
|
|
4913
4916
|
// type-aware order (structureOrderBy), matching the home-card top-3 and the
|
|
4914
4917
|
// markets-under-an-event ordering. Passing sortBy here would override it.
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
isErrorWithStatus,
|
|
11
11
|
useEventListTabs,
|
|
12
12
|
useEventListTabsHeaderOverflow
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-BVNXMHSL.mjs";
|
|
14
14
|
import {
|
|
15
15
|
DEPOSIT_MODAL_OPEN_EVENT,
|
|
16
16
|
PlaceOrder,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
WITHDRAW_MODAL_OPEN_EVENT,
|
|
19
19
|
useClaimWinnings,
|
|
20
20
|
useResolvedMarketClaim
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-O27JUYCF.mjs";
|
|
22
22
|
import {
|
|
23
23
|
getDisplayOutcomePrice
|
|
24
24
|
} from "./chunk-JQKJDSTW.mjs";
|
|
@@ -480,9 +480,9 @@ var SPORTS_PERIOD_ORDER = [
|
|
|
480
480
|
"first_inning",
|
|
481
481
|
"second_inning",
|
|
482
482
|
"third_inning",
|
|
483
|
-
"first_5_innings",
|
|
484
483
|
"other"
|
|
485
484
|
];
|
|
485
|
+
var FIRST_N_INNINGS_PATTERN = /^first_(\d{1,2})_innings$/;
|
|
486
486
|
var SPORTS_MARKET_TYPE_ORDER = [
|
|
487
487
|
"to_advance",
|
|
488
488
|
"moneyline",
|
|
@@ -513,6 +513,10 @@ var stripLineValueFromQuestion = (question) => {
|
|
|
513
513
|
var SPORTS_PERIOD_FAMILY_ORDER = ["period", "inning", "set", "map", "game"];
|
|
514
514
|
var getSportsPeriodOrderIndex = (period) => {
|
|
515
515
|
var _a, _b;
|
|
516
|
+
const inningsMatch = FIRST_N_INNINGS_PATTERN.exec(period);
|
|
517
|
+
if (inningsMatch) {
|
|
518
|
+
return SPORTS_PERIOD_ORDER.indexOf("third_inning") + 1 + Number(inningsMatch[1]) / 100;
|
|
519
|
+
}
|
|
516
520
|
const periodIndex = SPORTS_PERIOD_ORDER.indexOf(period);
|
|
517
521
|
if (periodIndex >= 0) {
|
|
518
522
|
return period === "other" ? Number.MAX_SAFE_INTEGER : periodIndex;
|
|
@@ -615,6 +619,28 @@ var resolveMarketSectionTabKey = (market) => {
|
|
|
615
619
|
if (category === "other") return "other";
|
|
616
620
|
return null;
|
|
617
621
|
};
|
|
622
|
+
var SPORTS_PERIOD_FAMILY_ALLOWED_SPORTS = {
|
|
623
|
+
halves: /* @__PURE__ */ new Set(["soccer", "basketball", "american_football", "rugby", "aussie_rules"]),
|
|
624
|
+
quarters: /* @__PURE__ */ new Set(["basketball", "american_football", "lacrosse", "aussie_rules"]),
|
|
625
|
+
innings: /* @__PURE__ */ new Set(["baseball"]),
|
|
626
|
+
sets: /* @__PURE__ */ new Set(["tennis", "table_tennis", "volleyball"]),
|
|
627
|
+
maps: /* @__PURE__ */ new Set(["esports"]),
|
|
628
|
+
ot: /* @__PURE__ */ new Set(["basketball", "american_football", "hockey", "soccer"])
|
|
629
|
+
};
|
|
630
|
+
var PERIOD_N_FAMILY_PATTERN = /^period_\d{1,2}$/;
|
|
631
|
+
var isPeriodFamilyAllowedForSport = (family, sport) => {
|
|
632
|
+
if (!sport || sport === "other_sport") return true;
|
|
633
|
+
if (PERIOD_N_FAMILY_PATTERN.test(family)) return sport === "hockey";
|
|
634
|
+
const normalizedFamily = FIRST_N_INNINGS_PATTERN.test(family) ? "innings" : family;
|
|
635
|
+
const allowedSports = SPORTS_PERIOD_FAMILY_ALLOWED_SPORTS[normalizedFamily];
|
|
636
|
+
return !allowedSports || allowedSports.has(sport);
|
|
637
|
+
};
|
|
638
|
+
var resolveEffectiveMarketSectionTabKey = (market, sport) => {
|
|
639
|
+
const key = resolveMarketSectionTabKey(market);
|
|
640
|
+
if (!key || !key.startsWith("period:")) return key;
|
|
641
|
+
const family = key.slice("period:".length);
|
|
642
|
+
return isPeriodFamilyAllowedForSport(family, sport) ? key : "other";
|
|
643
|
+
};
|
|
618
644
|
var resolveVisibleSportsSectionTabs = (event) => {
|
|
619
645
|
var _a, _b, _c;
|
|
620
646
|
const periodsByFamily = /* @__PURE__ */ new Map();
|
|
@@ -623,7 +649,7 @@ var resolveVisibleSportsSectionTabs = (event) => {
|
|
|
623
649
|
let hasExactScore = false;
|
|
624
650
|
let hasOther = false;
|
|
625
651
|
for (const market of event.venueMarkets) {
|
|
626
|
-
const key =
|
|
652
|
+
const key = resolveEffectiveMarketSectionTabKey(market, event.sport);
|
|
627
653
|
if (!key) continue;
|
|
628
654
|
if (key === "game_lines") hasGameLines = true;
|
|
629
655
|
else if (key === "exact_score") hasExactScore = true;
|
|
@@ -745,16 +771,19 @@ var dropDecomposedLegsMergedIntoSingle = (markets) => {
|
|
|
745
771
|
var resolveSportsSectionMarkets = ({
|
|
746
772
|
tab,
|
|
747
773
|
eventMarkets,
|
|
748
|
-
sectionMarkets
|
|
774
|
+
sectionMarkets,
|
|
775
|
+
sport
|
|
749
776
|
}) => {
|
|
750
|
-
const effectiveSectionMarkets = sectionMarkets.length > 0 ? sectionMarkets : eventMarkets.filter(
|
|
777
|
+
const effectiveSectionMarkets = sectionMarkets.length > 0 ? sectionMarkets : eventMarkets.filter(
|
|
778
|
+
(market) => resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
|
|
779
|
+
);
|
|
751
780
|
const filteredSectionMarkets = effectiveSectionMarkets.filter(
|
|
752
|
-
(market) =>
|
|
781
|
+
(market) => resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
|
|
753
782
|
);
|
|
754
783
|
if (tab.key === "other" || tab.key === `stat:${SPORTS_GENERIC_STAT}`) {
|
|
755
784
|
const seenIds = new Set(filteredSectionMarkets.map((market) => market.id));
|
|
756
785
|
const strayMarkets = eventMarkets.filter(
|
|
757
|
-
(market) => !seenIds.has(market.id) &&
|
|
786
|
+
(market) => !seenIds.has(market.id) && resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
|
|
758
787
|
);
|
|
759
788
|
return [...filteredSectionMarkets, ...strayMarkets];
|
|
760
789
|
}
|
|
@@ -1857,9 +1886,10 @@ var SportsMarkets = ({
|
|
|
1857
1886
|
() => resolveSportsSectionMarkets({
|
|
1858
1887
|
tab: activeTab,
|
|
1859
1888
|
eventMarkets: tabSourceMarkets,
|
|
1860
|
-
sectionMarkets
|
|
1889
|
+
sectionMarkets,
|
|
1890
|
+
sport: event.sport
|
|
1861
1891
|
}),
|
|
1862
|
-
[activeTab, tabSourceMarkets, sectionMarkets]
|
|
1892
|
+
[activeTab, tabSourceMarkets, sectionMarkets, event.sport]
|
|
1863
1893
|
);
|
|
1864
1894
|
const isSectionSettled = !isSectionLoading && !hasNextPage && !isFetchingNextPage;
|
|
1865
1895
|
const stableSectionMarkets = stableMarketsByTab[activeTabKey];
|
|
@@ -1366,7 +1366,7 @@ var buildLiveRouteCards = ({
|
|
|
1366
1366
|
};
|
|
1367
1367
|
}
|
|
1368
1368
|
const avgPrice = sq.avgPrice;
|
|
1369
|
-
const soloQuoteData = __spreadProps(__spreadValues({}, quoteData), {
|
|
1369
|
+
const soloQuoteData = __spreadValues(__spreadProps(__spreadValues({}, quoteData), {
|
|
1370
1370
|
// Preview-only solos intentionally carry no executable quoteId; the card
|
|
1371
1371
|
// should still render for comparison, while the CTA stays disabled until
|
|
1372
1372
|
// the user is funded and requotes.
|
|
@@ -1379,7 +1379,7 @@ var buildLiveRouteCards = ({
|
|
|
1379
1379
|
returnPct: sq.returnPct,
|
|
1380
1380
|
// venueSoloQuotes stripped on solo card's quoteData (only the primary needs them)
|
|
1381
1381
|
venueSoloQuotes: void 0
|
|
1382
|
-
});
|
|
1382
|
+
}), sq.quoteId ? { status: "ok", error: void 0 } : null);
|
|
1383
1383
|
return {
|
|
1384
1384
|
id: `live-solo-${sq.venue}`,
|
|
1385
1385
|
hint: labels.averagePrice(avgPrice),
|
|
@@ -1435,6 +1435,17 @@ var buildLiveRouteCards = ({
|
|
|
1435
1435
|
})() : [];
|
|
1436
1436
|
return [...baseCards, ...unavailableCards, ...warningOnlyUnavailableCards];
|
|
1437
1437
|
};
|
|
1438
|
+
var resolveDefaultRouteCardId = (routeCards, primaryStatus) => {
|
|
1439
|
+
var _a, _b, _c, _d;
|
|
1440
|
+
if (routeCards.length === 0) return null;
|
|
1441
|
+
if (primaryStatus === "insufficient_balance") {
|
|
1442
|
+
const executableCard = routeCards.find(
|
|
1443
|
+
(card) => !card.isUnavailable && card.quoteData.status === "ok" && card.quoteData.quoteId
|
|
1444
|
+
);
|
|
1445
|
+
if (executableCard) return executableCard.id;
|
|
1446
|
+
}
|
|
1447
|
+
return (_d = (_c = (_a = routeCards.find((card) => !card.isUnavailable)) == null ? void 0 : _a.id) != null ? _c : (_b = routeCards[0]) == null ? void 0 : _b.id) != null ? _d : null;
|
|
1448
|
+
};
|
|
1438
1449
|
var sellSharesToAtomicUnits = (shares) => {
|
|
1439
1450
|
if (!Number.isFinite(shares) || shares <= 0) return BigInt(0);
|
|
1440
1451
|
const [whole = "0", fraction = ""] = shares.toFixed(12).split(".");
|
|
@@ -3369,7 +3380,7 @@ var PlaceOrder = ({
|
|
|
3369
3380
|
resolvedClaim,
|
|
3370
3381
|
midpointsResult
|
|
3371
3382
|
}) => {
|
|
3372
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X;
|
|
3383
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y;
|
|
3373
3384
|
const {
|
|
3374
3385
|
enableDebug: isExecutionDebugEnabled,
|
|
3375
3386
|
features: { enableAnimations, showFeesBreakdown, showLimitOrders },
|
|
@@ -3800,13 +3811,13 @@ var PlaceOrder = ({
|
|
|
3800
3811
|
venueSellQuotes.quotes
|
|
3801
3812
|
]);
|
|
3802
3813
|
const resolvedSelectedRouteCardId = useMemo(() => {
|
|
3803
|
-
var _a2
|
|
3814
|
+
var _a2;
|
|
3804
3815
|
if (routeCards.length === 0) return null;
|
|
3805
3816
|
if (selectedRouteCardId && routeCards.some((card) => card.id === selectedRouteCardId && !card.isUnavailable)) {
|
|
3806
3817
|
return selectedRouteCardId;
|
|
3807
3818
|
}
|
|
3808
|
-
return (
|
|
3809
|
-
}, [routeCards, selectedRouteCardId]);
|
|
3819
|
+
return resolveDefaultRouteCardId(routeCards, isSell ? void 0 : (_a2 = smartRoute.data) == null ? void 0 : _a2.status);
|
|
3820
|
+
}, [routeCards, selectedRouteCardId, isSell, (_w = smartRoute.data) == null ? void 0 : _w.status]);
|
|
3810
3821
|
useEffect2(() => {
|
|
3811
3822
|
if (routeCards.length === 0) {
|
|
3812
3823
|
setSelectedRouteCardId(null);
|
|
@@ -3846,14 +3857,14 @@ var PlaceOrder = ({
|
|
|
3846
3857
|
setLimitPriceInputError(null);
|
|
3847
3858
|
}, [executionType, scopedSelectedOutcomeId, selectedOutcomeDisplayPrice]);
|
|
3848
3859
|
const orderedRouteCards = routeCards;
|
|
3849
|
-
const selectedRouteCard = (
|
|
3860
|
+
const selectedRouteCard = (_y = (_x = orderedRouteCards.find((card) => card.id === resolvedSelectedRouteCardId)) != null ? _x : orderedRouteCards[0]) != null ? _y : null;
|
|
3850
3861
|
const isKalshiRoute = useMemo(() => {
|
|
3851
3862
|
if (selectedRouteCard) {
|
|
3852
3863
|
return selectedRouteCard.venue === "kalshi" || selectedRouteCard.quoteData.fills.some((f) => f.venue === "kalshi");
|
|
3853
3864
|
}
|
|
3854
3865
|
return (scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.venue) === "kalshi";
|
|
3855
3866
|
}, [selectedRouteCard, scopedSelectedMarket]);
|
|
3856
|
-
const displayedBalance = isPaperMode ? paperTotalBalance : isKalshiRoute ? (
|
|
3867
|
+
const displayedBalance = isPaperMode ? paperTotalBalance : isKalshiRoute ? (_z = liveBalanceState.kalshiBalance) != null ? _z : 0 : liveAvailableBalance;
|
|
3857
3868
|
const legacyKalshiAccount = useMemo(
|
|
3858
3869
|
() => {
|
|
3859
3870
|
var _a2;
|
|
@@ -3861,8 +3872,8 @@ var PlaceOrder = ({
|
|
|
3861
3872
|
},
|
|
3862
3873
|
[user == null ? void 0 : user.venueAccounts]
|
|
3863
3874
|
);
|
|
3864
|
-
const isKalshiAccountActive = (
|
|
3865
|
-
const isKalshiVerified = ((
|
|
3875
|
+
const isKalshiAccountActive = (_A = kalshiKeyStatus == null ? void 0 : kalshiKeyStatus.connected) != null ? _A : (legacyKalshiAccount == null ? void 0 : legacyKalshiAccount.status) === "active";
|
|
3876
|
+
const isKalshiVerified = ((_B = kalshiKeyStatus == null ? void 0 : kalshiKeyStatus.kycStatus) != null ? _B : legacyKalshiAccount == null ? void 0 : legacyKalshiAccount.kycStatus) === "verified";
|
|
3866
3877
|
const hasKalshiConnectionState = kalshiKeyStatus !== void 0 || (user == null ? void 0 : user.venueAccounts) != null;
|
|
3867
3878
|
const isKalshiAvailable = getVenueAvailabilityState({
|
|
3868
3879
|
venueId: "kalshi",
|
|
@@ -3889,7 +3900,7 @@ var PlaceOrder = ({
|
|
|
3889
3900
|
[aggClient, onConnectKalshi, refetchKalshiKeyStatus]
|
|
3890
3901
|
);
|
|
3891
3902
|
const needsKycVerification = isAuthenticated && hasKalshiConnectionState && isKalshiRoute && isKalshiAccountActive && !isKalshiVerified;
|
|
3892
|
-
const verifyKalshiConnectionLabel = (
|
|
3903
|
+
const verifyKalshiConnectionLabel = (_F = (_E = (_D = (_C = labels.onboarding) == null ? void 0 : _C.connectKalshiModal) == null ? void 0 : _D.actions) == null ? void 0 : _E.verifyConnection) != null ? _F : tradingLabels.kycRequired;
|
|
3893
3904
|
const handleRouteCardSelect = useCallback2(
|
|
3894
3905
|
(cardId) => {
|
|
3895
3906
|
if (cardId === resolvedSelectedRouteCardId) {
|
|
@@ -3904,15 +3915,15 @@ var PlaceOrder = ({
|
|
|
3904
3915
|
[resolvedSelectedRouteCardId, routeCards]
|
|
3905
3916
|
);
|
|
3906
3917
|
const executionProgress = useExecutionProgress({
|
|
3907
|
-
orderIds: (
|
|
3908
|
-
quoteId: (
|
|
3918
|
+
orderIds: (_G = submissionProgressState == null ? void 0 : submissionProgressState.orderIds) != null ? _G : null,
|
|
3919
|
+
quoteId: (_H = submissionProgressState == null ? void 0 : submissionProgressState.quoteId) != null ? _H : null,
|
|
3909
3920
|
mode: isPaperMode ? "paper" : void 0,
|
|
3910
|
-
enabled: ((submissionProgressState == null ? void 0 : submissionProgressState.phase) === "submitting" || (submissionProgressState == null ? void 0 : submissionProgressState.phase) === "executing") && !!((
|
|
3921
|
+
enabled: ((submissionProgressState == null ? void 0 : submissionProgressState.phase) === "submitting" || (submissionProgressState == null ? void 0 : submissionProgressState.phase) === "executing") && !!((_I = submissionProgressState == null ? void 0 : submissionProgressState.orderIds) == null ? void 0 : _I.length)
|
|
3911
3922
|
});
|
|
3912
|
-
const selectedOutcomeLabel = (
|
|
3913
|
-
const headerImage = (
|
|
3914
|
-
const headerTitle = (
|
|
3915
|
-
const headerSubtitle = (
|
|
3923
|
+
const selectedOutcomeLabel = (_L = (_K = (_J = outcomes.find((outcome) => outcome.id === scopedSelectedOutcomeId)) == null ? void 0 : _J.label) != null ? _K : scopedSelectedOutcome == null ? void 0 : scopedSelectedOutcome.label) != null ? _L : "";
|
|
3924
|
+
const headerImage = (_N = (_M = scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.image) != null ? _M : scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.image) != null ? _N : null;
|
|
3925
|
+
const headerTitle = (_P = (_O = scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.title) != null ? _O : scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.question) != null ? _P : "";
|
|
3926
|
+
const headerSubtitle = (_Q = scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.question) != null ? _Q : "";
|
|
3916
3927
|
const buildExecutionSummary = useCallback2(
|
|
3917
3928
|
(quoteData, executionVenue, orderId, partialFillSummary) => {
|
|
3918
3929
|
var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2;
|
|
@@ -4210,19 +4221,19 @@ var PlaceOrder = ({
|
|
|
4210
4221
|
queryClient,
|
|
4211
4222
|
submissionProgressState
|
|
4212
4223
|
]);
|
|
4213
|
-
const activeQuoteData = (
|
|
4224
|
+
const activeQuoteData = (_S = (_R = selectedRouteCard == null ? void 0 : selectedRouteCard.quoteData) != null ? _R : smartRoute.data) != null ? _S : null;
|
|
4214
4225
|
const visibleRouteCards = orderedRouteCards.length > PLACE_ORDER_ROUTE_COLLAPSED_CARD_COUNT && !isRoutesExpanded ? orderedRouteCards.slice(0, PLACE_ORDER_ROUTE_COLLAPSED_CARD_COUNT) : orderedRouteCards;
|
|
4215
4226
|
const hasEnteredAmount = internalAmount > 0;
|
|
4216
4227
|
const isQuoteLoading = !isLimitOrder && hasEnteredAmount && (smartRoute.isFetching || smartRoute.isLoading || isSell && (venueSellQuotes.isFetching || venueSellQuotes.isLoading));
|
|
4217
4228
|
const routeLoadingMessage = isQuoteLoading ? smartRoute.loadingReason === "updating-route" ? tradingLabels.updatingRoute : smartRoute.loadingReason === "refreshing-quotes" ? tradingLabels.refreshingQuotes : tradingLabels.findingBestOdds : null;
|
|
4218
|
-
const selectedRouteFills = (
|
|
4229
|
+
const selectedRouteFills = (_T = selectedRouteCard == null ? void 0 : selectedRouteCard.quoteData.fills) != null ? _T : [];
|
|
4219
4230
|
const isKalshiOnlyRoute = isKalshiRoute && ((selectedRouteCard == null ? void 0 : selectedRouteCard.venue) === Venue4.kalshi || selectedRouteFills.length > 0 && selectedRouteFills.every((fill) => fill.venue === Venue4.kalshi));
|
|
4220
4231
|
const isOnchainOnlyRoute = !isKalshiRoute || selectedRouteFills.length > 0 && selectedRouteFills.every((fill) => fill.venue !== Venue4.kalshi);
|
|
4221
4232
|
const kalshiRequiredAmount = isSell ? 0 : selectedRouteFills.filter((fill) => fill.venue === Venue4.kalshi).reduce((total, fill) => total + fill.venueQty * fill.avgPrice, 0);
|
|
4222
4233
|
const onchainRequiredAmount = isSell ? 0 : selectedRouteFills.filter((fill) => fill.venue !== Venue4.kalshi).reduce((total, fill) => total + fill.venueQty * fill.avgPrice, 0);
|
|
4223
4234
|
const resolvedKalshiRequiredAmount = isKalshiOnlyRoute || isKalshiRoute && selectedRouteFills.length === 0 ? internalAmount : kalshiRequiredAmount;
|
|
4224
4235
|
const resolvedOnchainRequiredAmount = isOnchainOnlyRoute || !isKalshiRoute && selectedRouteFills.length === 0 ? internalAmount : onchainRequiredAmount;
|
|
4225
|
-
const isKalshiBalanceInsufficient = !isPaperMode && isKalshiRoute && resolvedKalshiRequiredAmount > ((
|
|
4236
|
+
const isKalshiBalanceInsufficient = !isPaperMode && isKalshiRoute && resolvedKalshiRequiredAmount > ((_U = liveBalanceState.kalshiBalance) != null ? _U : 0);
|
|
4226
4237
|
const isOnchainBalanceInsufficient = resolvedOnchainRequiredAmount > liveAvailableBalance;
|
|
4227
4238
|
const isInsufficientBalance = !isSell && isAuthenticated && hasEnteredAmount && !isBalanceLoading && (isLimitOrder ? internalAmount > totalBalance : isPaperMode ? internalAmount > paperTotalBalance : isKalshiBalanceInsufficient || isOnchainBalanceInsufficient);
|
|
4228
4239
|
const isQuoteInsufficientBalance = !isLimitOrder && (activeQuoteData == null ? void 0 : activeQuoteData.status) === "insufficient_balance";
|
|
@@ -4316,7 +4327,7 @@ var PlaceOrder = ({
|
|
|
4316
4327
|
}
|
|
4317
4328
|
return (_d2 = selectedRouteCard.hint) != null ? _d2 : "";
|
|
4318
4329
|
}, [selectedRouteCard, tradingLabels]);
|
|
4319
|
-
const displayedToWinValue = (
|
|
4330
|
+
const displayedToWinValue = (_V = selectedRouteCard == null ? void 0 : selectedRouteCard.numericValue) != null ? _V : 0;
|
|
4320
4331
|
const limitOrderPayload = useMemo(() => {
|
|
4321
4332
|
if (!scopedSelectedMarket || !scopedSelectedOutcomeId || internalAmount <= 0) return null;
|
|
4322
4333
|
if (limitPriceInputError) return null;
|
|
@@ -4435,13 +4446,13 @@ var PlaceOrder = ({
|
|
|
4435
4446
|
];
|
|
4436
4447
|
}, [activeFeeBreakdown, tradingLabels]);
|
|
4437
4448
|
const isActionLoading = isPrimaryActionLoading || executeManaged.isPending || placeLimitOrder.isPending || isBeforeActionPending;
|
|
4438
|
-
const selectedRouteGeoBlocked = (
|
|
4449
|
+
const selectedRouteGeoBlocked = (_W = selectedRouteCard == null ? void 0 : selectedRouteCard.isUnavailable) != null ? _W : false;
|
|
4439
4450
|
const geoBlockedVenuesFromWarnings = useMemo(
|
|
4440
4451
|
() => {
|
|
4441
4452
|
var _a2;
|
|
4442
4453
|
return extractGeoBlockedVenues((_a2 = smartRoute.data) == null ? void 0 : _a2.warnings);
|
|
4443
4454
|
},
|
|
4444
|
-
[(
|
|
4455
|
+
[(_X = smartRoute.data) == null ? void 0 : _X.warnings]
|
|
4445
4456
|
);
|
|
4446
4457
|
const isPrimaryVenueGeoBlocked = useMemo(() => {
|
|
4447
4458
|
var _a2, _b2;
|
|
@@ -5099,7 +5110,7 @@ var PlaceOrder = ({
|
|
|
5099
5110
|
PlaceOrderResolvedView,
|
|
5100
5111
|
{
|
|
5101
5112
|
tradingState: resolvedReadOnlyTradingState,
|
|
5102
|
-
resolutionTimestamp: (
|
|
5113
|
+
resolutionTimestamp: (_Y = resolvedEventTradingState.resolvesAt) != null ? _Y : resolvedReadOnlyTradingState.resolvesAt,
|
|
5103
5114
|
resolvedClaim,
|
|
5104
5115
|
classNames,
|
|
5105
5116
|
className,
|
package/dist/events.js
CHANGED
|
@@ -13706,7 +13706,10 @@ var MarketDetailsList = ({
|
|
|
13706
13706
|
} = (0, import_hooks43.useVenueMarkets)({
|
|
13707
13707
|
venueEventId: resolvedEventId,
|
|
13708
13708
|
enabled: !providedMarkets && !!resolvedEventId,
|
|
13709
|
-
status: import_hooks43.MarketStatus.open
|
|
13709
|
+
status: import_hooks43.MarketStatus.open,
|
|
13710
|
+
// Keep in lockstep with useEnrichedVenueEvent: limit is part of the React
|
|
13711
|
+
// Query key, so a mismatch would fork the shared cache into two requests.
|
|
13712
|
+
limit: 40
|
|
13710
13713
|
// No explicit sortBy: event-scoped /venue-markets sorts by the event's
|
|
13711
13714
|
// type-aware order (structureOrderBy), matching the home-card top-3 and the
|
|
13712
13715
|
// markets-under-an-event ordering. Passing sortBy here would override it.
|
package/dist/events.mjs
CHANGED
package/dist/index.js
CHANGED
|
@@ -17648,7 +17648,10 @@ var MarketDetailsList = ({
|
|
|
17648
17648
|
} = (0, import_hooks51.useVenueMarkets)({
|
|
17649
17649
|
venueEventId: resolvedEventId,
|
|
17650
17650
|
enabled: !providedMarkets && !!resolvedEventId,
|
|
17651
|
-
status: import_hooks51.MarketStatus.open
|
|
17651
|
+
status: import_hooks51.MarketStatus.open,
|
|
17652
|
+
// Keep in lockstep with useEnrichedVenueEvent: limit is part of the React
|
|
17653
|
+
// Query key, so a mismatch would fork the shared cache into two requests.
|
|
17654
|
+
limit: 40
|
|
17652
17655
|
// No explicit sortBy: event-scoped /venue-markets sorts by the event's
|
|
17653
17656
|
// type-aware order (structureOrderBy), matching the home-card top-3 and the
|
|
17654
17657
|
// markets-under-an-event ordering. Passing sortBy here would override it.
|
|
@@ -20552,7 +20555,7 @@ var buildLiveRouteCards = ({
|
|
|
20552
20555
|
};
|
|
20553
20556
|
}
|
|
20554
20557
|
const avgPrice = sq.avgPrice;
|
|
20555
|
-
const soloQuoteData = __spreadProps(__spreadValues({}, quoteData), {
|
|
20558
|
+
const soloQuoteData = __spreadValues(__spreadProps(__spreadValues({}, quoteData), {
|
|
20556
20559
|
// Preview-only solos intentionally carry no executable quoteId; the card
|
|
20557
20560
|
// should still render for comparison, while the CTA stays disabled until
|
|
20558
20561
|
// the user is funded and requotes.
|
|
@@ -20565,7 +20568,7 @@ var buildLiveRouteCards = ({
|
|
|
20565
20568
|
returnPct: sq.returnPct,
|
|
20566
20569
|
// venueSoloQuotes stripped on solo card's quoteData (only the primary needs them)
|
|
20567
20570
|
venueSoloQuotes: void 0
|
|
20568
|
-
});
|
|
20571
|
+
}), sq.quoteId ? { status: "ok", error: void 0 } : null);
|
|
20569
20572
|
return {
|
|
20570
20573
|
id: `live-solo-${sq.venue}`,
|
|
20571
20574
|
hint: labels.averagePrice(avgPrice),
|
|
@@ -20621,6 +20624,17 @@ var buildLiveRouteCards = ({
|
|
|
20621
20624
|
})() : [];
|
|
20622
20625
|
return [...baseCards, ...unavailableCards, ...warningOnlyUnavailableCards];
|
|
20623
20626
|
};
|
|
20627
|
+
var resolveDefaultRouteCardId = (routeCards, primaryStatus) => {
|
|
20628
|
+
var _a, _b, _c, _d;
|
|
20629
|
+
if (routeCards.length === 0) return null;
|
|
20630
|
+
if (primaryStatus === "insufficient_balance") {
|
|
20631
|
+
const executableCard = routeCards.find(
|
|
20632
|
+
(card) => !card.isUnavailable && card.quoteData.status === "ok" && card.quoteData.quoteId
|
|
20633
|
+
);
|
|
20634
|
+
if (executableCard) return executableCard.id;
|
|
20635
|
+
}
|
|
20636
|
+
return (_d = (_c = (_a = routeCards.find((card) => !card.isUnavailable)) == null ? void 0 : _a.id) != null ? _c : (_b = routeCards[0]) == null ? void 0 : _b.id) != null ? _d : null;
|
|
20637
|
+
};
|
|
20624
20638
|
var sellSharesToAtomicUnits = (shares) => {
|
|
20625
20639
|
if (!Number.isFinite(shares) || shares <= 0) return BigInt(0);
|
|
20626
20640
|
const [whole = "0", fraction = ""] = shares.toFixed(12).split(".");
|
|
@@ -22555,7 +22569,7 @@ var PlaceOrder = ({
|
|
|
22555
22569
|
resolvedClaim,
|
|
22556
22570
|
midpointsResult
|
|
22557
22571
|
}) => {
|
|
22558
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X;
|
|
22572
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y;
|
|
22559
22573
|
const {
|
|
22560
22574
|
enableDebug: isExecutionDebugEnabled,
|
|
22561
22575
|
features: { enableAnimations, showFeesBreakdown, showLimitOrders },
|
|
@@ -22986,13 +23000,13 @@ var PlaceOrder = ({
|
|
|
22986
23000
|
venueSellQuotes.quotes
|
|
22987
23001
|
]);
|
|
22988
23002
|
const resolvedSelectedRouteCardId = (0, import_react39.useMemo)(() => {
|
|
22989
|
-
var _a2
|
|
23003
|
+
var _a2;
|
|
22990
23004
|
if (routeCards.length === 0) return null;
|
|
22991
23005
|
if (selectedRouteCardId && routeCards.some((card) => card.id === selectedRouteCardId && !card.isUnavailable)) {
|
|
22992
23006
|
return selectedRouteCardId;
|
|
22993
23007
|
}
|
|
22994
|
-
return (
|
|
22995
|
-
}, [routeCards, selectedRouteCardId]);
|
|
23008
|
+
return resolveDefaultRouteCardId(routeCards, isSell ? void 0 : (_a2 = smartRoute.data) == null ? void 0 : _a2.status);
|
|
23009
|
+
}, [routeCards, selectedRouteCardId, isSell, (_w = smartRoute.data) == null ? void 0 : _w.status]);
|
|
22996
23010
|
(0, import_react39.useEffect)(() => {
|
|
22997
23011
|
if (routeCards.length === 0) {
|
|
22998
23012
|
setSelectedRouteCardId(null);
|
|
@@ -23032,14 +23046,14 @@ var PlaceOrder = ({
|
|
|
23032
23046
|
setLimitPriceInputError(null);
|
|
23033
23047
|
}, [executionType, scopedSelectedOutcomeId, selectedOutcomeDisplayPrice]);
|
|
23034
23048
|
const orderedRouteCards = routeCards;
|
|
23035
|
-
const selectedRouteCard = (
|
|
23049
|
+
const selectedRouteCard = (_y = (_x = orderedRouteCards.find((card) => card.id === resolvedSelectedRouteCardId)) != null ? _x : orderedRouteCards[0]) != null ? _y : null;
|
|
23036
23050
|
const isKalshiRoute = (0, import_react39.useMemo)(() => {
|
|
23037
23051
|
if (selectedRouteCard) {
|
|
23038
23052
|
return selectedRouteCard.venue === "kalshi" || selectedRouteCard.quoteData.fills.some((f) => f.venue === "kalshi");
|
|
23039
23053
|
}
|
|
23040
23054
|
return (scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.venue) === "kalshi";
|
|
23041
23055
|
}, [selectedRouteCard, scopedSelectedMarket]);
|
|
23042
|
-
const displayedBalance = isPaperMode ? paperTotalBalance : isKalshiRoute ? (
|
|
23056
|
+
const displayedBalance = isPaperMode ? paperTotalBalance : isKalshiRoute ? (_z = liveBalanceState.kalshiBalance) != null ? _z : 0 : liveAvailableBalance;
|
|
23043
23057
|
const legacyKalshiAccount = (0, import_react39.useMemo)(
|
|
23044
23058
|
() => {
|
|
23045
23059
|
var _a2;
|
|
@@ -23047,8 +23061,8 @@ var PlaceOrder = ({
|
|
|
23047
23061
|
},
|
|
23048
23062
|
[user == null ? void 0 : user.venueAccounts]
|
|
23049
23063
|
);
|
|
23050
|
-
const isKalshiAccountActive = (
|
|
23051
|
-
const isKalshiVerified = ((
|
|
23064
|
+
const isKalshiAccountActive = (_A = kalshiKeyStatus == null ? void 0 : kalshiKeyStatus.connected) != null ? _A : (legacyKalshiAccount == null ? void 0 : legacyKalshiAccount.status) === "active";
|
|
23065
|
+
const isKalshiVerified = ((_B = kalshiKeyStatus == null ? void 0 : kalshiKeyStatus.kycStatus) != null ? _B : legacyKalshiAccount == null ? void 0 : legacyKalshiAccount.kycStatus) === "verified";
|
|
23052
23066
|
const hasKalshiConnectionState = kalshiKeyStatus !== void 0 || (user == null ? void 0 : user.venueAccounts) != null;
|
|
23053
23067
|
const isKalshiAvailable = (0, import_hooks63.getVenueAvailabilityState)({
|
|
23054
23068
|
venueId: "kalshi",
|
|
@@ -23075,7 +23089,7 @@ var PlaceOrder = ({
|
|
|
23075
23089
|
[aggClient, onConnectKalshi, refetchKalshiKeyStatus]
|
|
23076
23090
|
);
|
|
23077
23091
|
const needsKycVerification = isAuthenticated && hasKalshiConnectionState && isKalshiRoute && isKalshiAccountActive && !isKalshiVerified;
|
|
23078
|
-
const verifyKalshiConnectionLabel = (
|
|
23092
|
+
const verifyKalshiConnectionLabel = (_F = (_E = (_D = (_C = labels.onboarding) == null ? void 0 : _C.connectKalshiModal) == null ? void 0 : _D.actions) == null ? void 0 : _E.verifyConnection) != null ? _F : tradingLabels.kycRequired;
|
|
23079
23093
|
const handleRouteCardSelect = (0, import_react39.useCallback)(
|
|
23080
23094
|
(cardId) => {
|
|
23081
23095
|
if (cardId === resolvedSelectedRouteCardId) {
|
|
@@ -23090,15 +23104,15 @@ var PlaceOrder = ({
|
|
|
23090
23104
|
[resolvedSelectedRouteCardId, routeCards]
|
|
23091
23105
|
);
|
|
23092
23106
|
const executionProgress = (0, import_hooks63.useExecutionProgress)({
|
|
23093
|
-
orderIds: (
|
|
23094
|
-
quoteId: (
|
|
23107
|
+
orderIds: (_G = submissionProgressState == null ? void 0 : submissionProgressState.orderIds) != null ? _G : null,
|
|
23108
|
+
quoteId: (_H = submissionProgressState == null ? void 0 : submissionProgressState.quoteId) != null ? _H : null,
|
|
23095
23109
|
mode: isPaperMode ? "paper" : void 0,
|
|
23096
|
-
enabled: ((submissionProgressState == null ? void 0 : submissionProgressState.phase) === "submitting" || (submissionProgressState == null ? void 0 : submissionProgressState.phase) === "executing") && !!((
|
|
23110
|
+
enabled: ((submissionProgressState == null ? void 0 : submissionProgressState.phase) === "submitting" || (submissionProgressState == null ? void 0 : submissionProgressState.phase) === "executing") && !!((_I = submissionProgressState == null ? void 0 : submissionProgressState.orderIds) == null ? void 0 : _I.length)
|
|
23097
23111
|
});
|
|
23098
|
-
const selectedOutcomeLabel = (
|
|
23099
|
-
const headerImage = (
|
|
23100
|
-
const headerTitle = (
|
|
23101
|
-
const headerSubtitle = (
|
|
23112
|
+
const selectedOutcomeLabel = (_L = (_K = (_J = outcomes.find((outcome) => outcome.id === scopedSelectedOutcomeId)) == null ? void 0 : _J.label) != null ? _K : scopedSelectedOutcome == null ? void 0 : scopedSelectedOutcome.label) != null ? _L : "";
|
|
23113
|
+
const headerImage = (_N = (_M = scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.image) != null ? _M : scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.image) != null ? _N : null;
|
|
23114
|
+
const headerTitle = (_P = (_O = scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.title) != null ? _O : scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.question) != null ? _P : "";
|
|
23115
|
+
const headerSubtitle = (_Q = scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.question) != null ? _Q : "";
|
|
23102
23116
|
const buildExecutionSummary = (0, import_react39.useCallback)(
|
|
23103
23117
|
(quoteData, executionVenue, orderId, partialFillSummary) => {
|
|
23104
23118
|
var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2;
|
|
@@ -23396,19 +23410,19 @@ var PlaceOrder = ({
|
|
|
23396
23410
|
queryClient,
|
|
23397
23411
|
submissionProgressState
|
|
23398
23412
|
]);
|
|
23399
|
-
const activeQuoteData = (
|
|
23413
|
+
const activeQuoteData = (_S = (_R = selectedRouteCard == null ? void 0 : selectedRouteCard.quoteData) != null ? _R : smartRoute.data) != null ? _S : null;
|
|
23400
23414
|
const visibleRouteCards = orderedRouteCards.length > PLACE_ORDER_ROUTE_COLLAPSED_CARD_COUNT && !isRoutesExpanded ? orderedRouteCards.slice(0, PLACE_ORDER_ROUTE_COLLAPSED_CARD_COUNT) : orderedRouteCards;
|
|
23401
23415
|
const hasEnteredAmount = internalAmount > 0;
|
|
23402
23416
|
const isQuoteLoading = !isLimitOrder && hasEnteredAmount && (smartRoute.isFetching || smartRoute.isLoading || isSell && (venueSellQuotes.isFetching || venueSellQuotes.isLoading));
|
|
23403
23417
|
const routeLoadingMessage = isQuoteLoading ? smartRoute.loadingReason === "updating-route" ? tradingLabels.updatingRoute : smartRoute.loadingReason === "refreshing-quotes" ? tradingLabels.refreshingQuotes : tradingLabels.findingBestOdds : null;
|
|
23404
|
-
const selectedRouteFills = (
|
|
23418
|
+
const selectedRouteFills = (_T = selectedRouteCard == null ? void 0 : selectedRouteCard.quoteData.fills) != null ? _T : [];
|
|
23405
23419
|
const isKalshiOnlyRoute = isKalshiRoute && ((selectedRouteCard == null ? void 0 : selectedRouteCard.venue) === import_sdk23.Venue.kalshi || selectedRouteFills.length > 0 && selectedRouteFills.every((fill) => fill.venue === import_sdk23.Venue.kalshi));
|
|
23406
23420
|
const isOnchainOnlyRoute = !isKalshiRoute || selectedRouteFills.length > 0 && selectedRouteFills.every((fill) => fill.venue !== import_sdk23.Venue.kalshi);
|
|
23407
23421
|
const kalshiRequiredAmount = isSell ? 0 : selectedRouteFills.filter((fill) => fill.venue === import_sdk23.Venue.kalshi).reduce((total, fill) => total + fill.venueQty * fill.avgPrice, 0);
|
|
23408
23422
|
const onchainRequiredAmount = isSell ? 0 : selectedRouteFills.filter((fill) => fill.venue !== import_sdk23.Venue.kalshi).reduce((total, fill) => total + fill.venueQty * fill.avgPrice, 0);
|
|
23409
23423
|
const resolvedKalshiRequiredAmount = isKalshiOnlyRoute || isKalshiRoute && selectedRouteFills.length === 0 ? internalAmount : kalshiRequiredAmount;
|
|
23410
23424
|
const resolvedOnchainRequiredAmount = isOnchainOnlyRoute || !isKalshiRoute && selectedRouteFills.length === 0 ? internalAmount : onchainRequiredAmount;
|
|
23411
|
-
const isKalshiBalanceInsufficient = !isPaperMode && isKalshiRoute && resolvedKalshiRequiredAmount > ((
|
|
23425
|
+
const isKalshiBalanceInsufficient = !isPaperMode && isKalshiRoute && resolvedKalshiRequiredAmount > ((_U = liveBalanceState.kalshiBalance) != null ? _U : 0);
|
|
23412
23426
|
const isOnchainBalanceInsufficient = resolvedOnchainRequiredAmount > liveAvailableBalance;
|
|
23413
23427
|
const isInsufficientBalance = !isSell && isAuthenticated && hasEnteredAmount && !isBalanceLoading && (isLimitOrder ? internalAmount > totalBalance : isPaperMode ? internalAmount > paperTotalBalance : isKalshiBalanceInsufficient || isOnchainBalanceInsufficient);
|
|
23414
23428
|
const isQuoteInsufficientBalance = !isLimitOrder && (activeQuoteData == null ? void 0 : activeQuoteData.status) === "insufficient_balance";
|
|
@@ -23502,7 +23516,7 @@ var PlaceOrder = ({
|
|
|
23502
23516
|
}
|
|
23503
23517
|
return (_d2 = selectedRouteCard.hint) != null ? _d2 : "";
|
|
23504
23518
|
}, [selectedRouteCard, tradingLabels]);
|
|
23505
|
-
const displayedToWinValue = (
|
|
23519
|
+
const displayedToWinValue = (_V = selectedRouteCard == null ? void 0 : selectedRouteCard.numericValue) != null ? _V : 0;
|
|
23506
23520
|
const limitOrderPayload = (0, import_react39.useMemo)(() => {
|
|
23507
23521
|
if (!scopedSelectedMarket || !scopedSelectedOutcomeId || internalAmount <= 0) return null;
|
|
23508
23522
|
if (limitPriceInputError) return null;
|
|
@@ -23621,13 +23635,13 @@ var PlaceOrder = ({
|
|
|
23621
23635
|
];
|
|
23622
23636
|
}, [activeFeeBreakdown, tradingLabels]);
|
|
23623
23637
|
const isActionLoading = isPrimaryActionLoading || executeManaged.isPending || placeLimitOrder.isPending || isBeforeActionPending;
|
|
23624
|
-
const selectedRouteGeoBlocked = (
|
|
23638
|
+
const selectedRouteGeoBlocked = (_W = selectedRouteCard == null ? void 0 : selectedRouteCard.isUnavailable) != null ? _W : false;
|
|
23625
23639
|
const geoBlockedVenuesFromWarnings = (0, import_react39.useMemo)(
|
|
23626
23640
|
() => {
|
|
23627
23641
|
var _a2;
|
|
23628
23642
|
return extractGeoBlockedVenues((_a2 = smartRoute.data) == null ? void 0 : _a2.warnings);
|
|
23629
23643
|
},
|
|
23630
|
-
[(
|
|
23644
|
+
[(_X = smartRoute.data) == null ? void 0 : _X.warnings]
|
|
23631
23645
|
);
|
|
23632
23646
|
const isPrimaryVenueGeoBlocked = (0, import_react39.useMemo)(() => {
|
|
23633
23647
|
var _a2, _b2;
|
|
@@ -24285,7 +24299,7 @@ var PlaceOrder = ({
|
|
|
24285
24299
|
PlaceOrderResolvedView,
|
|
24286
24300
|
{
|
|
24287
24301
|
tradingState: resolvedReadOnlyTradingState,
|
|
24288
|
-
resolutionTimestamp: (
|
|
24302
|
+
resolutionTimestamp: (_Y = resolvedEventTradingState.resolvesAt) != null ? _Y : resolvedReadOnlyTradingState.resolvesAt,
|
|
24289
24303
|
resolvedClaim,
|
|
24290
24304
|
classNames,
|
|
24291
24305
|
className,
|
|
@@ -25749,9 +25763,9 @@ var SPORTS_PERIOD_ORDER = [
|
|
|
25749
25763
|
"first_inning",
|
|
25750
25764
|
"second_inning",
|
|
25751
25765
|
"third_inning",
|
|
25752
|
-
"first_5_innings",
|
|
25753
25766
|
"other"
|
|
25754
25767
|
];
|
|
25768
|
+
var FIRST_N_INNINGS_PATTERN = /^first_(\d{1,2})_innings$/;
|
|
25755
25769
|
var SPORTS_MARKET_TYPE_ORDER = [
|
|
25756
25770
|
"to_advance",
|
|
25757
25771
|
"moneyline",
|
|
@@ -25782,6 +25796,10 @@ var stripLineValueFromQuestion = (question) => {
|
|
|
25782
25796
|
var SPORTS_PERIOD_FAMILY_ORDER = ["period", "inning", "set", "map", "game"];
|
|
25783
25797
|
var getSportsPeriodOrderIndex = (period) => {
|
|
25784
25798
|
var _a, _b;
|
|
25799
|
+
const inningsMatch = FIRST_N_INNINGS_PATTERN.exec(period);
|
|
25800
|
+
if (inningsMatch) {
|
|
25801
|
+
return SPORTS_PERIOD_ORDER.indexOf("third_inning") + 1 + Number(inningsMatch[1]) / 100;
|
|
25802
|
+
}
|
|
25785
25803
|
const periodIndex = SPORTS_PERIOD_ORDER.indexOf(period);
|
|
25786
25804
|
if (periodIndex >= 0) {
|
|
25787
25805
|
return period === "other" ? Number.MAX_SAFE_INTEGER : periodIndex;
|
|
@@ -25884,6 +25902,28 @@ var resolveMarketSectionTabKey = (market) => {
|
|
|
25884
25902
|
if (category === "other") return "other";
|
|
25885
25903
|
return null;
|
|
25886
25904
|
};
|
|
25905
|
+
var SPORTS_PERIOD_FAMILY_ALLOWED_SPORTS = {
|
|
25906
|
+
halves: /* @__PURE__ */ new Set(["soccer", "basketball", "american_football", "rugby", "aussie_rules"]),
|
|
25907
|
+
quarters: /* @__PURE__ */ new Set(["basketball", "american_football", "lacrosse", "aussie_rules"]),
|
|
25908
|
+
innings: /* @__PURE__ */ new Set(["baseball"]),
|
|
25909
|
+
sets: /* @__PURE__ */ new Set(["tennis", "table_tennis", "volleyball"]),
|
|
25910
|
+
maps: /* @__PURE__ */ new Set(["esports"]),
|
|
25911
|
+
ot: /* @__PURE__ */ new Set(["basketball", "american_football", "hockey", "soccer"])
|
|
25912
|
+
};
|
|
25913
|
+
var PERIOD_N_FAMILY_PATTERN = /^period_\d{1,2}$/;
|
|
25914
|
+
var isPeriodFamilyAllowedForSport = (family, sport) => {
|
|
25915
|
+
if (!sport || sport === "other_sport") return true;
|
|
25916
|
+
if (PERIOD_N_FAMILY_PATTERN.test(family)) return sport === "hockey";
|
|
25917
|
+
const normalizedFamily = FIRST_N_INNINGS_PATTERN.test(family) ? "innings" : family;
|
|
25918
|
+
const allowedSports = SPORTS_PERIOD_FAMILY_ALLOWED_SPORTS[normalizedFamily];
|
|
25919
|
+
return !allowedSports || allowedSports.has(sport);
|
|
25920
|
+
};
|
|
25921
|
+
var resolveEffectiveMarketSectionTabKey = (market, sport) => {
|
|
25922
|
+
const key = resolveMarketSectionTabKey(market);
|
|
25923
|
+
if (!key || !key.startsWith("period:")) return key;
|
|
25924
|
+
const family = key.slice("period:".length);
|
|
25925
|
+
return isPeriodFamilyAllowedForSport(family, sport) ? key : "other";
|
|
25926
|
+
};
|
|
25887
25927
|
var resolveVisibleSportsSectionTabs = (event) => {
|
|
25888
25928
|
var _a, _b, _c;
|
|
25889
25929
|
const periodsByFamily = /* @__PURE__ */ new Map();
|
|
@@ -25892,7 +25932,7 @@ var resolveVisibleSportsSectionTabs = (event) => {
|
|
|
25892
25932
|
let hasExactScore = false;
|
|
25893
25933
|
let hasOther = false;
|
|
25894
25934
|
for (const market of event.venueMarkets) {
|
|
25895
|
-
const key =
|
|
25935
|
+
const key = resolveEffectiveMarketSectionTabKey(market, event.sport);
|
|
25896
25936
|
if (!key) continue;
|
|
25897
25937
|
if (key === "game_lines") hasGameLines = true;
|
|
25898
25938
|
else if (key === "exact_score") hasExactScore = true;
|
|
@@ -26014,16 +26054,19 @@ var dropDecomposedLegsMergedIntoSingle = (markets) => {
|
|
|
26014
26054
|
var resolveSportsSectionMarkets = ({
|
|
26015
26055
|
tab,
|
|
26016
26056
|
eventMarkets,
|
|
26017
|
-
sectionMarkets
|
|
26057
|
+
sectionMarkets,
|
|
26058
|
+
sport
|
|
26018
26059
|
}) => {
|
|
26019
|
-
const effectiveSectionMarkets = sectionMarkets.length > 0 ? sectionMarkets : eventMarkets.filter(
|
|
26060
|
+
const effectiveSectionMarkets = sectionMarkets.length > 0 ? sectionMarkets : eventMarkets.filter(
|
|
26061
|
+
(market) => resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
|
|
26062
|
+
);
|
|
26020
26063
|
const filteredSectionMarkets = effectiveSectionMarkets.filter(
|
|
26021
|
-
(market) =>
|
|
26064
|
+
(market) => resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
|
|
26022
26065
|
);
|
|
26023
26066
|
if (tab.key === "other" || tab.key === `stat:${SPORTS_GENERIC_STAT}`) {
|
|
26024
26067
|
const seenIds = new Set(filteredSectionMarkets.map((market) => market.id));
|
|
26025
26068
|
const strayMarkets = eventMarkets.filter(
|
|
26026
|
-
(market) => !seenIds.has(market.id) &&
|
|
26069
|
+
(market) => !seenIds.has(market.id) && resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
|
|
26027
26070
|
);
|
|
26028
26071
|
return [...filteredSectionMarkets, ...strayMarkets];
|
|
26029
26072
|
}
|
|
@@ -27120,9 +27163,10 @@ var SportsMarkets = ({
|
|
|
27120
27163
|
() => resolveSportsSectionMarkets({
|
|
27121
27164
|
tab: activeTab,
|
|
27122
27165
|
eventMarkets: tabSourceMarkets,
|
|
27123
|
-
sectionMarkets
|
|
27166
|
+
sectionMarkets,
|
|
27167
|
+
sport: event.sport
|
|
27124
27168
|
}),
|
|
27125
|
-
[activeTab, tabSourceMarkets, sectionMarkets]
|
|
27169
|
+
[activeTab, tabSourceMarkets, sectionMarkets, event.sport]
|
|
27126
27170
|
);
|
|
27127
27171
|
const isSectionSettled = !isSectionLoading && !hasNextPage && !isFetchingNextPage;
|
|
27128
27172
|
const stableSectionMarkets = stableMarketsByTab[activeTabKey];
|