@agg-build/ui 4.22.5 → 4.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-JGLBF5WY.mjs → chunk-5ET2M3XX.mjs} +2 -2
- package/dist/{chunk-CKHECAKV.mjs → chunk-7ORC3TUJ.mjs} +398 -239
- package/dist/{chunk-LIB6TLLV.mjs → chunk-H54RU7NF.mjs} +1 -1
- package/dist/{chunk-NV6WT3TN.mjs → chunk-HZXHDH6G.mjs} +153 -45
- package/dist/{chunk-EPP5DTCF.mjs → chunk-J75RLLP2.mjs} +63 -66
- package/dist/{chunk-LTFRGJPL.mjs → chunk-JR2XAAK6.mjs} +3 -2
- package/dist/{chunk-UXLC3FFY.mjs → chunk-W2LCFCW3.mjs} +1 -1
- package/dist/{event-market-Q3XA3WIH.mjs → event-market-IYPFVSSX.mjs} +4 -4
- package/dist/events.js +3 -2
- package/dist/events.mjs +2 -2
- package/dist/index.js +2673 -2396
- package/dist/index.mjs +9 -7
- package/dist/modals.js +512 -352
- package/dist/modals.mjs +4 -2
- package/dist/pages.js +2213 -1938
- package/dist/pages.mjs +6 -6
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/trading.js +1139 -874
- package/dist/trading.mjs +2 -2
- package/dist/types/onboarding/index.d.mts +1 -0
- package/dist/types/onboarding/index.d.ts +1 -0
- package/dist/types/onboarding/steps/connect-novig-modal.d.mts +12 -0
- package/dist/types/onboarding/steps/connect-novig-modal.d.ts +12 -0
- package/dist/types/pages/user-profile/components/available-balance-card.d.mts +1 -2
- package/dist/types/pages/user-profile/components/available-balance-card.d.ts +1 -2
- package/dist/types/trading/place-order/index.place-order.utils.d.mts +7 -0
- package/dist/types/trading/place-order/index.place-order.utils.d.ts +7 -0
- package/package.json +3 -3
|
@@ -12,12 +12,13 @@ import {
|
|
|
12
12
|
} from "./chunk-WOCZ4TVT.mjs";
|
|
13
13
|
import {
|
|
14
14
|
ConnectKalshiModal,
|
|
15
|
+
ConnectNovigModal,
|
|
15
16
|
ConnectProphetxModal,
|
|
16
17
|
GeoBlockBanner,
|
|
17
18
|
ManageBetdexAccountModal,
|
|
18
19
|
SharedKycModal,
|
|
19
20
|
subscribeAggDepositNotification
|
|
20
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-7ORC3TUJ.mjs";
|
|
21
22
|
import {
|
|
22
23
|
AGG_TERMS_OF_SERVICE_URL,
|
|
23
24
|
Button,
|
|
@@ -1279,7 +1280,7 @@ var resolveSellableSharesByVenue = ({
|
|
|
1279
1280
|
market,
|
|
1280
1281
|
selectedOutcome
|
|
1281
1282
|
}) => {
|
|
1282
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
1283
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1283
1284
|
const sharesByVenue = /* @__PURE__ */ new Map();
|
|
1284
1285
|
if (!market || !selectedOutcome) return sharesByVenue;
|
|
1285
1286
|
const normalizedSelectedOutcomeLabel = normalizeOutcomeName(selectedOutcome.label);
|
|
@@ -1291,16 +1292,32 @@ var resolveSellableSharesByVenue = ({
|
|
|
1291
1292
|
...((_c = market.matchedVenueMarkets) != null ? _c : []).map((matched) => matched.id)
|
|
1292
1293
|
].filter((value) => Boolean(value))
|
|
1293
1294
|
);
|
|
1295
|
+
const selectedOutcomeRefs = [
|
|
1296
|
+
{ venueMarketId: market.id, venueMarketOutcomeId: selectedOutcome.id },
|
|
1297
|
+
...(_d = selectedOutcome.matchedVenueMarketOutcomes) != null ? _d : []
|
|
1298
|
+
];
|
|
1299
|
+
const referencedMarketIds = new Set(selectedOutcomeRefs.map((ref) => ref.venueMarketId));
|
|
1300
|
+
const referencedOutcomeKeys = new Set(
|
|
1301
|
+
selectedOutcomeRefs.map((ref) => `${ref.venueMarketId}\0${ref.venueMarketOutcomeId}`)
|
|
1302
|
+
);
|
|
1294
1303
|
for (const group of positions) {
|
|
1295
|
-
for (const outcome of (
|
|
1296
|
-
|
|
1297
|
-
for (const breakdown of (
|
|
1298
|
-
if (breakdown.executionBackend === "direct" && breakdown.venue === "prophetx")
|
|
1299
|
-
|
|
1300
|
-
|
|
1304
|
+
for (const outcome of (_f = (_e = group.venueMarket) == null ? void 0 : _e.venueMarketOutcomes) != null ? _f : []) {
|
|
1305
|
+
const labelMatches = normalizeOutcomeName(outcome.label) === normalizedSelectedOutcomeLabel;
|
|
1306
|
+
for (const breakdown of (_g = outcome.venueBreakdown) != null ? _g : []) {
|
|
1307
|
+
if (breakdown.executionBackend === "direct" && (breakdown.venue === "prophetx" || breakdown.venue === "novig"))
|
|
1308
|
+
continue;
|
|
1309
|
+
const heldOutcomeId = breakdown.venueMarketOutcomeId;
|
|
1310
|
+
const referenced = heldOutcomeId !== void 0 && referencedOutcomeKeys.has(`${breakdown.venueMarketId}\0${heldOutcomeId}`);
|
|
1311
|
+
if (!referenced) {
|
|
1312
|
+
if (heldOutcomeId !== void 0 && (referencedMarketIds.has(breakdown.venueMarketId) || referencedMarketIds.has(group.targetMarketId)))
|
|
1313
|
+
continue;
|
|
1314
|
+
if (!labelMatches) continue;
|
|
1315
|
+
const matchesMarketId = selectedMarketIdSet.size === 0 || selectedMarketIdSet.has(group.targetMarketId) || selectedMarketIdSet.has(breakdown.venueMarketId);
|
|
1316
|
+
if (!matchesMarketId) continue;
|
|
1317
|
+
}
|
|
1301
1318
|
const size = Number.isFinite(breakdown.size) ? breakdown.size : 0;
|
|
1302
1319
|
if (size <= 0) continue;
|
|
1303
|
-
sharesByVenue.set(breakdown.venue, ((
|
|
1320
|
+
sharesByVenue.set(breakdown.venue, ((_h = sharesByVenue.get(breakdown.venue)) != null ? _h : 0) + size);
|
|
1304
1321
|
}
|
|
1305
1322
|
}
|
|
1306
1323
|
}
|
|
@@ -4618,7 +4635,7 @@ var PlaceOrder = ({
|
|
|
4618
4635
|
showResolvingState = false,
|
|
4619
4636
|
midpointsResult
|
|
4620
4637
|
}) => {
|
|
4621
|
-
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, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja;
|
|
4638
|
+
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, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma;
|
|
4622
4639
|
const {
|
|
4623
4640
|
enableDebug: isExecutionDebugEnabled,
|
|
4624
4641
|
features: { enableAnimations, showFeesBreakdown, showLimitOrders: limitOrdersFeature },
|
|
@@ -4720,7 +4737,12 @@ var PlaceOrder = ({
|
|
|
4720
4737
|
const placeLimitOrder = usePlaceLimitOrder();
|
|
4721
4738
|
const aggClient = useAggClient();
|
|
4722
4739
|
const queryClient = useQueryClient();
|
|
4723
|
-
const {
|
|
4740
|
+
const {
|
|
4741
|
+
disabledVenues,
|
|
4742
|
+
isLoading: isAppConfigLoading,
|
|
4743
|
+
prophetxExecutionMode,
|
|
4744
|
+
novigExecutionMode
|
|
4745
|
+
} = useAppConfig();
|
|
4724
4746
|
const isProphetxDirect = !isPaperMode && prophetxExecutionMode === "direct";
|
|
4725
4747
|
const canConnectProphetx = getVenueAvailabilityState({
|
|
4726
4748
|
venueId: Venue5.prophetx,
|
|
@@ -4732,6 +4754,17 @@ var PlaceOrder = ({
|
|
|
4732
4754
|
isAuthenticated && !isPaperMode
|
|
4733
4755
|
);
|
|
4734
4756
|
const [isConnectProphetxModalOpen, setIsConnectProphetxModalOpen] = useState3(false);
|
|
4757
|
+
const isNovigDirect = !isPaperMode && novigExecutionMode === "direct";
|
|
4758
|
+
const canConnectNovig = getVenueAvailabilityState({
|
|
4759
|
+
venueId: Venue5.novig,
|
|
4760
|
+
disabledVenues,
|
|
4761
|
+
isConfigLoading: isAppConfigLoading
|
|
4762
|
+
}) !== "hidden";
|
|
4763
|
+
const { data: novigKeyStatus, refetch: refetchNovigKeyStatus } = useVenueKeyStatus(
|
|
4764
|
+
Venue5.novig,
|
|
4765
|
+
isAuthenticated && !isPaperMode
|
|
4766
|
+
);
|
|
4767
|
+
const [isConnectNovigModalOpen, setIsConnectNovigModalOpen] = useState3(false);
|
|
4735
4768
|
const { data: kalshiKeyStatus, refetch: refetchKalshiKeyStatus } = useVenueKeyStatus(
|
|
4736
4769
|
Venue5.kalshi,
|
|
4737
4770
|
isAuthenticated
|
|
@@ -4864,13 +4897,21 @@ var PlaceOrder = ({
|
|
|
4864
4897
|
const visibleLimitVenueOptions = useMemo(() => {
|
|
4865
4898
|
return limitVenueOptions.filter((option) => {
|
|
4866
4899
|
if (option.venue === Venue5.prophetx && (!isProphetxDirect || isSell)) return false;
|
|
4900
|
+
if (option.venue === Venue5.novig && (!isNovigDirect || isSell)) return false;
|
|
4867
4901
|
return getVenueAvailabilityState({
|
|
4868
4902
|
venueId: option.venue,
|
|
4869
4903
|
disabledVenues,
|
|
4870
4904
|
isConfigLoading: isAppConfigLoading
|
|
4871
4905
|
}) !== "hidden";
|
|
4872
4906
|
});
|
|
4873
|
-
}, [
|
|
4907
|
+
}, [
|
|
4908
|
+
disabledVenues,
|
|
4909
|
+
isAppConfigLoading,
|
|
4910
|
+
limitVenueOptions,
|
|
4911
|
+
isProphetxDirect,
|
|
4912
|
+
isNovigDirect,
|
|
4913
|
+
isSell
|
|
4914
|
+
]);
|
|
4874
4915
|
const {
|
|
4875
4916
|
positions: executionPositions,
|
|
4876
4917
|
dataUpdatedAt: executionPositionsUpdatedAt,
|
|
@@ -5277,6 +5318,9 @@ var PlaceOrder = ({
|
|
|
5277
5318
|
const hasDirectProphetxQuote = (_G = selectedRouteCard == null ? void 0 : selectedRouteCard.quoteData.fills.some(
|
|
5278
5319
|
(fill) => fill.venue === Venue5.prophetx && fill.executionBackend === "direct"
|
|
5279
5320
|
)) != null ? _G : false;
|
|
5321
|
+
const hasDirectNovigQuote = (_H = selectedRouteCard == null ? void 0 : selectedRouteCard.quoteData.fills.some(
|
|
5322
|
+
(fill) => fill.venue === Venue5.novig && fill.executionBackend === "direct"
|
|
5323
|
+
)) != null ? _H : false;
|
|
5280
5324
|
const selectedSharedKycVenue = useMemo(() => {
|
|
5281
5325
|
var _a2, _b2;
|
|
5282
5326
|
const candidateVenue = isLimitOrder ? selectedLimitVenueOption == null ? void 0 : selectedLimitVenueOption.venue : (_b2 = (_a2 = selectedRouteCard == null ? void 0 : selectedRouteCard.quoteData.fills.find(
|
|
@@ -5287,6 +5331,8 @@ var PlaceOrder = ({
|
|
|
5287
5331
|
)) == null ? void 0 : _a2.venue) != null ? _b2 : selectedRouteCard == null ? void 0 : selectedRouteCard.venue;
|
|
5288
5332
|
if (candidateVenue === Venue5.prophetx && (isProphetxDirect || hasDirectProphetxQuote) && (!isSell || !sellableSharesByVenue.get(Venue5.prophetx)))
|
|
5289
5333
|
return null;
|
|
5334
|
+
if (candidateVenue === Venue5.novig && (isNovigDirect || hasDirectNovigQuote) && (!isSell || !sellableSharesByVenue.get(Venue5.novig)))
|
|
5335
|
+
return null;
|
|
5290
5336
|
if (!venueRequiresSharedKyc({ venue: candidateVenue })) return null;
|
|
5291
5337
|
const parsedVenue = parseVenue(candidateVenue);
|
|
5292
5338
|
return parsedVenue.success ? parsedVenue.data : null;
|
|
@@ -5296,6 +5342,8 @@ var PlaceOrder = ({
|
|
|
5296
5342
|
selectedRouteCard,
|
|
5297
5343
|
isProphetxDirect,
|
|
5298
5344
|
hasDirectProphetxQuote,
|
|
5345
|
+
isNovigDirect,
|
|
5346
|
+
hasDirectNovigQuote,
|
|
5299
5347
|
isSell,
|
|
5300
5348
|
sellableSharesByVenue
|
|
5301
5349
|
]);
|
|
@@ -5308,21 +5356,24 @@ var PlaceOrder = ({
|
|
|
5308
5356
|
return (scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.venue) === "kalshi";
|
|
5309
5357
|
}, [isLimitOrder, selectedLimitVenueOption == null ? void 0 : selectedLimitVenueOption.venue, selectedRouteCard, scopedSelectedMarket]);
|
|
5310
5358
|
const isProphetxDirectRoute = !isPaperMode && (isProphetxDirect || hasDirectProphetxQuote) && (!isSell || !sellableSharesByVenue.get(Venue5.prophetx)) && (isLimitOrder ? (selectedLimitVenueOption == null ? void 0 : selectedLimitVenueOption.venue) === Venue5.prophetx : selectedRouteCard ? selectedRouteCard.venue === Venue5.prophetx || selectedRouteCard.quoteData.fills.some((fill) => fill.venue === Venue5.prophetx) : (scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.venue) === Venue5.prophetx);
|
|
5311
|
-
const prophetxBalance = (
|
|
5359
|
+
const prophetxBalance = (_J = (_I = liveBalanceState.venueCashBalances) == null ? void 0 : _I[Venue5.prophetx]) != null ? _J : 0;
|
|
5312
5360
|
const needsProphetxConnection = !isPaperMode && isAuthenticated && canConnectProphetx && isProphetxDirectRoute && !(prophetxKeyStatus == null ? void 0 : prophetxKeyStatus.connected);
|
|
5361
|
+
const isNovigDirectRoute = !isPaperMode && (isNovigDirect || hasDirectNovigQuote) && (!isSell || !sellableSharesByVenue.get(Venue5.novig)) && (isLimitOrder ? (selectedLimitVenueOption == null ? void 0 : selectedLimitVenueOption.venue) === Venue5.novig : selectedRouteCard ? selectedRouteCard.venue === Venue5.novig || selectedRouteCard.quoteData.fills.some((fill) => fill.venue === Venue5.novig) : (scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.venue) === Venue5.novig);
|
|
5362
|
+
const novigBalance = (_L = (_K = liveBalanceState.venueCashBalances) == null ? void 0 : _K[Venue5.novig]) != null ? _L : 0;
|
|
5363
|
+
const needsNovigConnection = !isPaperMode && isAuthenticated && canConnectNovig && isNovigDirectRoute && !(novigKeyStatus == null ? void 0 : novigKeyStatus.connected);
|
|
5313
5364
|
useEffect4(() => {
|
|
5314
|
-
if ((selectedLimitVenueOption == null ? void 0 : selectedLimitVenueOption.venue) === Venue5.prophetx) {
|
|
5365
|
+
if ((selectedLimitVenueOption == null ? void 0 : selectedLimitVenueOption.venue) === Venue5.prophetx || (selectedLimitVenueOption == null ? void 0 : selectedLimitVenueOption.venue) === Venue5.novig) {
|
|
5315
5366
|
setLimitExpirationType("GTC");
|
|
5316
5367
|
setIsLimitExpirationPickerOpen(false);
|
|
5317
5368
|
}
|
|
5318
5369
|
}, [selectedLimitVenueOption == null ? void 0 : selectedLimitVenueOption.venue]);
|
|
5319
|
-
const selectedRouteFills = (
|
|
5320
|
-
const fallbackRouteVenue = isLimitOrder ? selectedLimitVenueOption == null ? void 0 : selectedLimitVenueOption.venue : (
|
|
5370
|
+
const selectedRouteFills = (_M = selectedRouteCard == null ? void 0 : selectedRouteCard.quoteData.fills) != null ? _M : [];
|
|
5371
|
+
const fallbackRouteVenue = isLimitOrder ? selectedLimitVenueOption == null ? void 0 : selectedLimitVenueOption.venue : (_N = selectedRouteCard == null ? void 0 : selectedRouteCard.venue) != null ? _N : scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.venue;
|
|
5321
5372
|
const isBetdexRoute = isLimitOrder || selectedRouteFills.length === 0 ? fallbackRouteVenue === Venue5.betdex : selectedRouteFills.some((fill) => fill.venue === Venue5.betdex);
|
|
5322
5373
|
const isBetdexOnlyRoute = isBetdexRoute && (isLimitOrder || selectedRouteFills.every((fill) => fill.venue === Venue5.betdex));
|
|
5323
|
-
const totalBalance = isPaperMode ? paperTotalBalance : isProphetxDirectRoute ? prophetxBalance : isBetdexOnlyRoute ? (betdexAvailableBalance != null ? betdexAvailableBalance : 0) + (isLimitOrder ? 0 : liveAvailableBalance) : liveAvailableBalance;
|
|
5374
|
+
const totalBalance = isPaperMode ? paperTotalBalance : isNovigDirectRoute ? novigBalance : isProphetxDirectRoute ? prophetxBalance : isBetdexOnlyRoute ? (betdexAvailableBalance != null ? betdexAvailableBalance : 0) + (isLimitOrder ? 0 : liveAvailableBalance) : liveAvailableBalance;
|
|
5324
5375
|
const isBalanceLoading = isPaperMode ? paperBalancesQuery.isLoading : isBetdexOnlyRoute ? betdexAccount.isLoading || !isLimitOrder && liveBalanceState.isLoading : liveBalanceState.isLoading || isBetdexRoute && betdexAccount.isLoading;
|
|
5325
|
-
const displayedBalance = isPaperMode ? paperTotalBalance : isProphetxDirectRoute ? prophetxBalance : isBetdexOnlyRoute ? (betdexAvailableBalance != null ? betdexAvailableBalance : 0) + (isLimitOrder ? 0 : liveAvailableBalance) : isKalshiRoute ? (
|
|
5376
|
+
const displayedBalance = isPaperMode ? paperTotalBalance : isNovigDirectRoute ? novigBalance : isProphetxDirectRoute ? prophetxBalance : isBetdexOnlyRoute ? (betdexAvailableBalance != null ? betdexAvailableBalance : 0) + (isLimitOrder ? 0 : liveAvailableBalance) : isKalshiRoute ? (_O = liveBalanceState.kalshiBalance) != null ? _O : 0 : liveAvailableBalance;
|
|
5326
5377
|
const betdexBalanceLabel = betdexAvailableBalance === null ? tradingLabels.betdexBalanceUnavailable : tradingLabels.betdexBalance(formatUsd(betdexAvailableBalance));
|
|
5327
5378
|
const needsKalshiConnection = isKalshiDisconnected && isKalshiRoute;
|
|
5328
5379
|
const handleVerifyKalshi = useCallback3(
|
|
@@ -5375,23 +5426,23 @@ var PlaceOrder = ({
|
|
|
5375
5426
|
]
|
|
5376
5427
|
);
|
|
5377
5428
|
const executionProgress = useExecutionProgress({
|
|
5378
|
-
orderIds: (
|
|
5379
|
-
quoteId: (
|
|
5429
|
+
orderIds: (_P = submissionProgressState == null ? void 0 : submissionProgressState.orderIds) != null ? _P : null,
|
|
5430
|
+
quoteId: (_Q = submissionProgressState == null ? void 0 : submissionProgressState.quoteId) != null ? _Q : null,
|
|
5380
5431
|
mode: isPaperMode ? "paper" : void 0,
|
|
5381
|
-
enabled: ((submissionProgressState == null ? void 0 : submissionProgressState.phase) === "submitting" || (submissionProgressState == null ? void 0 : submissionProgressState.phase) === "executing") && !!((
|
|
5432
|
+
enabled: ((submissionProgressState == null ? void 0 : submissionProgressState.phase) === "submitting" || (submissionProgressState == null ? void 0 : submissionProgressState.phase) === "executing") && !!((_R = submissionProgressState == null ? void 0 : submissionProgressState.orderIds) == null ? void 0 : _R.length)
|
|
5382
5433
|
});
|
|
5383
5434
|
const executionProgressFloorRef = useRef4({
|
|
5384
5435
|
quoteId: null,
|
|
5385
5436
|
value: 0
|
|
5386
5437
|
});
|
|
5387
|
-
const selectedOutcome = (
|
|
5388
|
-
const selectedOutcomeLabel = (scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.venue) === Venue5.betdex ? ((
|
|
5389
|
-
const headerImage = (
|
|
5390
|
-
const headerTitle = (
|
|
5391
|
-
const headerSubtitle = (
|
|
5392
|
-
const executionDateSource = (
|
|
5438
|
+
const selectedOutcome = (_S = outcomes.find((outcome) => outcome.id === scopedSelectedOutcomeId)) != null ? _S : scopedSelectedOutcome;
|
|
5439
|
+
const selectedOutcomeLabel = (scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.venue) === Venue5.betdex ? ((_T = selectedOutcome == null ? void 0 : selectedOutcome.title) == null ? void 0 : _T.trim()) || (selectedOutcome == null ? void 0 : selectedOutcome.label) || "" : (_U = selectedOutcome == null ? void 0 : selectedOutcome.label) != null ? _U : "";
|
|
5440
|
+
const headerImage = (_W = (_V = scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.image) != null ? _V : scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.image) != null ? _W : null;
|
|
5441
|
+
const headerTitle = (_Y = (_X = scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.title) != null ? _X : scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.question) != null ? _Y : "";
|
|
5442
|
+
const headerSubtitle = (_Z = scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.question) != null ? _Z : "";
|
|
5443
|
+
const executionDateSource = (__ = scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.endDate) != null ? __ : scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.endDate;
|
|
5393
5444
|
const executionDateLabel = executionDateSource ? getTradingDateLabel(executionDateSource) : "";
|
|
5394
|
-
const executionQuoteData = (
|
|
5445
|
+
const executionQuoteData = (_aa = (_$ = submissionProgressState == null ? void 0 : submissionProgressState.quoteData) != null ? _$ : selectedRouteCard == null ? void 0 : selectedRouteCard.quoteData) != null ? _aa : null;
|
|
5395
5446
|
const executionOrderGroups = useMemo(() => {
|
|
5396
5447
|
var _a2, _b2, _c2;
|
|
5397
5448
|
if (submissionProgressState == null ? void 0 : submissionProgressState.limitOrderGroup) return [submissionProgressState.limitOrderGroup];
|
|
@@ -5414,7 +5465,7 @@ var PlaceOrder = ({
|
|
|
5414
5465
|
executionQuoteData,
|
|
5415
5466
|
internalTab,
|
|
5416
5467
|
submissionProgressState == null ? void 0 : submissionProgressState.limitOrderGroup,
|
|
5417
|
-
(
|
|
5468
|
+
(_ba = submissionProgressState == null ? void 0 : submissionProgressState.orderIds) == null ? void 0 : _ba.length,
|
|
5418
5469
|
tradingLabels
|
|
5419
5470
|
]);
|
|
5420
5471
|
const executionProgressPercent = useMemo(() => {
|
|
@@ -5766,22 +5817,22 @@ var PlaceOrder = ({
|
|
|
5766
5817
|
queryClient,
|
|
5767
5818
|
submissionProgressState
|
|
5768
5819
|
]);
|
|
5769
|
-
const activeQuoteData = isLimitOrder ? null : (
|
|
5820
|
+
const activeQuoteData = isLimitOrder ? null : (_ca = selectedRouteCard == null ? void 0 : selectedRouteCard.quoteData) != null ? _ca : scopedSmartRouteData;
|
|
5770
5821
|
const visibleMarketRouteCards = displayedRouteCards.length > PLACE_ORDER_ROUTE_COLLAPSED_CARD_COUNT && !isRoutesExpanded ? displayedRouteCards.slice(0, PLACE_ORDER_ROUTE_COLLAPSED_CARD_COUNT) : displayedRouteCards;
|
|
5771
5822
|
const hasEnteredAmount = internalAmount > 0;
|
|
5772
5823
|
const isQuoteLoading = !isLimitOrder && hasEnteredAmount && (isSell && isQuoteInputEditing || smartRoute.isLoading || !isSell && smartRoute.isFetching || isSell && venueSellQuotes.isLoading);
|
|
5773
5824
|
const routeLoadingMessage = isQuoteLoading ? smartRoute.loadingReason === "updating-route" ? tradingLabels.updatingRoute : smartRoute.loadingReason === "refreshing-quotes" ? tradingLabels.refreshingQuotes : tradingLabels.findingBestOdds : null;
|
|
5774
5825
|
const isKalshiOnlyRoute = isKalshiRoute && ((selectedRouteCard == null ? void 0 : selectedRouteCard.venue) === Venue5.kalshi || selectedRouteFills.length > 0 && selectedRouteFills.every((fill) => fill.venue === Venue5.kalshi));
|
|
5775
|
-
const isOnchainOnlyRoute = !isKalshiRoute && !isBetdexRoute && !isProphetxDirectRoute;
|
|
5826
|
+
const isOnchainOnlyRoute = !isKalshiRoute && !isBetdexRoute && !isProphetxDirectRoute && !isNovigDirectRoute;
|
|
5776
5827
|
const kalshiRequiredAmount = isSell ? 0 : selectedRouteFills.filter((fill) => fill.venue === Venue5.kalshi).reduce((total, fill) => total + fill.venueQty * fill.avgPrice, 0);
|
|
5777
5828
|
const betdexRequiredAmount = isSell ? 0 : selectedRouteFills.filter((fill) => fill.venue === Venue5.betdex).reduce((total, fill) => total + fill.venueQty * fill.avgPrice, 0);
|
|
5778
5829
|
const onchainRequiredAmount = isSell ? 0 : selectedRouteFills.filter(
|
|
5779
|
-
(fill) => fill.venue !== Venue5.kalshi && fill.venue !== Venue5.betdex && !(fill.venue === Venue5.prophetx && (isProphetxDirect || fill.executionBackend === "direct"))
|
|
5830
|
+
(fill) => fill.venue !== Venue5.kalshi && fill.venue !== Venue5.betdex && !(fill.venue === Venue5.prophetx && (isProphetxDirect || fill.executionBackend === "direct") || fill.venue === Venue5.novig && (isNovigDirect || fill.executionBackend === "direct"))
|
|
5780
5831
|
).reduce((total, fill) => total + fill.venueQty * fill.avgPrice, 0);
|
|
5781
5832
|
const resolvedKalshiRequiredAmount = isKalshiOnlyRoute || isKalshiRoute && selectedRouteFills.length === 0 ? internalAmount : kalshiRequiredAmount;
|
|
5782
5833
|
const resolvedBetdexRequiredAmount = isBetdexOnlyRoute ? internalAmount : betdexRequiredAmount;
|
|
5783
5834
|
const resolvedOnchainRequiredAmount = isOnchainOnlyRoute ? internalAmount : onchainRequiredAmount;
|
|
5784
|
-
const isKalshiBalanceInsufficient = !isPaperMode && isKalshiRoute && resolvedKalshiRequiredAmount > ((
|
|
5835
|
+
const isKalshiBalanceInsufficient = !isPaperMode && isKalshiRoute && resolvedKalshiRequiredAmount > ((_da = liveBalanceState.kalshiBalance) != null ? _da : 0);
|
|
5785
5836
|
const isBetdexBalanceInsufficient = !isPaperMode && isBetdexRoute && betdexAvailableBalance !== null && resolvedBetdexRequiredAmount > betdexAvailableBalance;
|
|
5786
5837
|
const isBetdexBalanceUnavailable = !isPaperMode && !isSell && isAuthenticated && isBetdexRoute && betdexAvailableBalance === null;
|
|
5787
5838
|
const canExecuteBetdexQuote = !isPaperMode && !isSell && !isLimitOrder && isAuthenticated && isBetdexRoute && !(selectedRouteCard == null ? void 0 : selectedRouteCard.isUnavailable) && selectedRouteFills.length > 0 && (selectedRouteCard == null ? void 0 : selectedRouteCard.quoteData.status) === "ok" && !!selectedRouteCard.quoteData.quoteId;
|
|
@@ -5789,7 +5840,9 @@ var PlaceOrder = ({
|
|
|
5789
5840
|
const isOnchainBalanceInsufficient = resolvedOnchainRequiredAmount > liveAvailableBalance;
|
|
5790
5841
|
const prophetxRequiredAmount = !isProphetxDirectRoute || isSell ? 0 : selectedRouteFills.length ? selectedRouteFills.filter((fill) => fill.venue === Venue5.prophetx).reduce((sum, fill) => sum + fill.venueQty * fill.avgPrice, 0) : internalAmount;
|
|
5791
5842
|
const isProphetxBalanceInsufficient = !isPaperMode && !isBalanceLoading && prophetxRequiredAmount > prophetxBalance;
|
|
5792
|
-
const
|
|
5843
|
+
const novigRequiredAmount = !isNovigDirectRoute || isSell ? 0 : selectedRouteFills.length ? selectedRouteFills.filter((fill) => fill.venue === Venue5.novig).reduce((sum, fill) => sum + fill.venueQty * fill.avgPrice, 0) : internalAmount;
|
|
5844
|
+
const isNovigBalanceInsufficient = !isPaperMode && !isBalanceLoading && novigRequiredAmount > novigBalance;
|
|
5845
|
+
const isInsufficientBalance = !isSell && isAuthenticated && hasEnteredAmount && !isBalanceLoading && (isLimitOrder ? internalAmount > (isProphetxDirectRoute ? prophetxBalance : totalBalance) : isPaperMode ? internalAmount > paperTotalBalance : isKalshiBalanceInsufficient || isProphetxBalanceInsufficient || isNovigBalanceInsufficient || isBetdexBalanceInsufficient && !canExecuteBetdexQuote || isOnchainBalanceInsufficient);
|
|
5793
5846
|
const isQuoteInsufficientBalance = !isLimitOrder && (activeQuoteData == null ? void 0 : activeQuoteData.status) === "insufficient_balance";
|
|
5794
5847
|
const shouldShowInsufficientBalanceAlert = isInsufficientBalance || isQuoteInsufficientBalance && !canExecuteBetdexQuote;
|
|
5795
5848
|
const insufficientBalanceDetails = isQuoteInsufficientBalance && (activeQuoteData == null ? void 0 : activeQuoteData.error) && activeQuoteData.error !== tradingLabels.insufficientBalance ? activeQuoteData.error : null;
|
|
@@ -5923,7 +5976,7 @@ var PlaceOrder = ({
|
|
|
5923
5976
|
const averagePrice = selectedRouteCard.executionPrice;
|
|
5924
5977
|
return averagePrice == null ? "" : tradingLabels.averagePrice(averagePrice);
|
|
5925
5978
|
}, [selectedRouteCard, tradingLabels]);
|
|
5926
|
-
const displayedToWinValue = (
|
|
5979
|
+
const displayedToWinValue = (_ea = selectedRouteCard == null ? void 0 : selectedRouteCard.numericValue) != null ? _ea : 0;
|
|
5927
5980
|
const originalLimitPriceRaw = useMemo(() => toLimitPriceRaw(limitPrice), [limitPrice]);
|
|
5928
5981
|
const limitPriceAdjustmentByVenue = useMemo(() => {
|
|
5929
5982
|
var _a2;
|
|
@@ -5952,7 +6005,7 @@ var PlaceOrder = ({
|
|
|
5952
6005
|
return adjustments;
|
|
5953
6006
|
}, [internalTab, limitVenueQuoteByVenue, originalLimitPriceRaw, visibleLimitVenueOptions]);
|
|
5954
6007
|
const selectedLimitPriceAdjustment = selectedLimitVenueOption ? limitPriceAdjustmentByVenue.get(selectedLimitVenueOption.venue) : void 0;
|
|
5955
|
-
const selectedLimitPriceRaw = (
|
|
6008
|
+
const selectedLimitPriceRaw = (_fa = selectedLimitPriceAdjustment == null ? void 0 : selectedLimitPriceAdjustment.adjustedPriceRaw) != null ? _fa : originalLimitPriceRaw;
|
|
5956
6009
|
const limitPriceAdjustmentMessage = useMemo(() => {
|
|
5957
6010
|
if (!selectedLimitVenueOption || !(selectedLimitPriceAdjustment == null ? void 0 : selectedLimitPriceAdjustment.adjusted) || !selectedLimitPriceAdjustment.tickSizeRaw) {
|
|
5958
6011
|
return "";
|
|
@@ -5995,8 +6048,8 @@ var PlaceOrder = ({
|
|
|
5995
6048
|
side: internalTab,
|
|
5996
6049
|
limitPriceRaw,
|
|
5997
6050
|
sizeRaw,
|
|
5998
|
-
timeInForce: selectedLimitVenueOption.venue === Venue5.prophetx || limitExpirationType === "GTC" ? "GTC" : "GTD"
|
|
5999
|
-
}, expiresAt && selectedLimitVenueOption.venue !== Venue5.prophetx ? { expiresAt } : {});
|
|
6051
|
+
timeInForce: selectedLimitVenueOption.venue === Venue5.prophetx || selectedLimitVenueOption.venue === Venue5.novig || limitExpirationType === "GTC" ? "GTC" : "GTD"
|
|
6052
|
+
}, expiresAt && selectedLimitVenueOption.venue !== Venue5.prophetx && selectedLimitVenueOption.venue !== Venue5.novig ? { expiresAt } : {});
|
|
6000
6053
|
}, [
|
|
6001
6054
|
internalAmount,
|
|
6002
6055
|
internalTab,
|
|
@@ -6126,7 +6179,7 @@ var PlaceOrder = ({
|
|
|
6126
6179
|
if (totalFees == null) return null;
|
|
6127
6180
|
return formatUsd(totalFees, { minimumFractionDigits: 2, maximumFractionDigits: 2 });
|
|
6128
6181
|
}, [activeFeeBreakdown]);
|
|
6129
|
-
const appFeeValue = (
|
|
6182
|
+
const appFeeValue = (_ga = activeFeeBreakdown == null ? void 0 : activeFeeBreakdown.appFee) != null ? _ga : 0;
|
|
6130
6183
|
const feeBreakdownRows = useMemo(() => {
|
|
6131
6184
|
var _a2;
|
|
6132
6185
|
if (!activeFeeBreakdown) return [];
|
|
@@ -6176,14 +6229,14 @@ var PlaceOrder = ({
|
|
|
6176
6229
|
}, [activeFeeBreakdown, appFeeValue, tradingLabels]);
|
|
6177
6230
|
const isActionLoading = isPrimaryActionLoading || executeManaged.isPending || placeLimitOrder.isPending || isBeforeActionPending;
|
|
6178
6231
|
const selectedLimitRouteCardId = selectedLimitVenueOption ? `limit-venue-${selectedLimitVenueOption.venue}-${selectedLimitVenueOption.venueMarketOutcomeId}` : null;
|
|
6179
|
-
const selectedLimitRouteCard = selectedLimitRouteCardId ? (
|
|
6180
|
-
const selectedRouteGeoBlocked = isLimitOrder ? (
|
|
6232
|
+
const selectedLimitRouteCard = selectedLimitRouteCardId ? (_ha = limitRouteCards.find((card) => card.id === selectedLimitRouteCardId)) != null ? _ha : null : null;
|
|
6233
|
+
const selectedRouteGeoBlocked = isLimitOrder ? (_ia = selectedLimitRouteCard == null ? void 0 : selectedLimitRouteCard.isUnavailable) != null ? _ia : false : (_ja = selectedRouteCard == null ? void 0 : selectedRouteCard.isUnavailable) != null ? _ja : false;
|
|
6181
6234
|
const geoBlockedVenuesFromWarnings = useMemo(
|
|
6182
6235
|
() => {
|
|
6183
6236
|
var _a2;
|
|
6184
6237
|
return extractGeoBlockedVenues((_a2 = smartRoute.data) == null ? void 0 : _a2.warnings);
|
|
6185
6238
|
},
|
|
6186
|
-
[(
|
|
6239
|
+
[(_ka = smartRoute.data) == null ? void 0 : _ka.warnings]
|
|
6187
6240
|
);
|
|
6188
6241
|
const isPrimaryVenueGeoBlocked = useMemo(() => {
|
|
6189
6242
|
var _a2, _b2;
|
|
@@ -6884,7 +6937,7 @@ var PlaceOrder = ({
|
|
|
6884
6937
|
PlaceOrderResolvedView,
|
|
6885
6938
|
{
|
|
6886
6939
|
tradingState: resolvedReadOnlyTradingState,
|
|
6887
|
-
resolutionTimestamp: (
|
|
6940
|
+
resolutionTimestamp: (_la = resolvedEventTradingState.resolvesAt) != null ? _la : resolvedReadOnlyTradingState.resolvesAt,
|
|
6888
6941
|
resolvedClaim,
|
|
6889
6942
|
classNames,
|
|
6890
6943
|
className,
|
|
@@ -6909,7 +6962,7 @@ var PlaceOrder = ({
|
|
|
6909
6962
|
headerSubtitle,
|
|
6910
6963
|
headerImage,
|
|
6911
6964
|
headerTitle,
|
|
6912
|
-
headerVenue: (
|
|
6965
|
+
headerVenue: (_ma = scopedSelectedMarket == null ? void 0 : scopedSelectedMarket.venue) != null ? _ma : scopedSelectedEvent == null ? void 0 : scopedSelectedEvent.venue,
|
|
6913
6966
|
onClose
|
|
6914
6967
|
}),
|
|
6915
6968
|
/* @__PURE__ */ jsxs7("div", { className: cn("agg-order-panel-content flex flex-col gap-6", classNames == null ? void 0 : classNames.content), children: [
|
|
@@ -7297,7 +7350,7 @@ var PlaceOrder = ({
|
|
|
7297
7350
|
]
|
|
7298
7351
|
}
|
|
7299
7352
|
) : null,
|
|
7300
|
-
isLimitOrder && (selectedLimitVenueOption == null ? void 0 : selectedLimitVenueOption.venue) !== Venue5.prophetx ? /* @__PURE__ */ jsxs7("div", { className: "agg-limit-expiration-section flex items-center justify-between gap-4", children: [
|
|
7353
|
+
isLimitOrder && (selectedLimitVenueOption == null ? void 0 : selectedLimitVenueOption.venue) !== Venue5.prophetx && (selectedLimitVenueOption == null ? void 0 : selectedLimitVenueOption.venue) !== Venue5.novig ? /* @__PURE__ */ jsxs7("div", { className: "agg-limit-expiration-section flex items-center justify-between gap-4", children: [
|
|
7301
7354
|
/* @__PURE__ */ jsx7("p", { className: "text-agg-base font-agg-bold leading-agg-6 text-agg-foreground", children: tradingLabels.expiration }),
|
|
7302
7355
|
/* @__PURE__ */ jsxs7(
|
|
7303
7356
|
Popover.Root,
|
|
@@ -7601,6 +7654,23 @@ var PlaceOrder = ({
|
|
|
7601
7654
|
rel: "noopener noreferrer",
|
|
7602
7655
|
children: tradingLabels.prophetxFundingNotice
|
|
7603
7656
|
}
|
|
7657
|
+
) : !submissionFeedback && !shouldShowGeoBlockBanner && needsNovigConnection ? /* @__PURE__ */ jsx7(
|
|
7658
|
+
Button,
|
|
7659
|
+
{
|
|
7660
|
+
size: "large",
|
|
7661
|
+
className: "h-12 w-full",
|
|
7662
|
+
onClick: () => setIsConnectNovigModalOpen(true),
|
|
7663
|
+
children: tradingLabels.connectNovig
|
|
7664
|
+
}
|
|
7665
|
+
) : !submissionFeedback && isNovigDirectRoute && isSell ? /* @__PURE__ */ jsx7(Button, { size: "large", className: "h-12 w-full", disabled: true, children: tradingLabels.novigSettlementNotice }) : !submissionFeedback && !shouldShowGeoBlockBanner && isNovigBalanceInsufficient ? /* @__PURE__ */ jsx7(
|
|
7666
|
+
"a",
|
|
7667
|
+
{
|
|
7668
|
+
className: "flex h-12 w-full items-center justify-center rounded-agg-md bg-agg-primary text-agg-on-primary",
|
|
7669
|
+
href: "https://novig.com/Profile/ProfileScreen",
|
|
7670
|
+
target: "_blank",
|
|
7671
|
+
rel: "noopener noreferrer",
|
|
7672
|
+
children: tradingLabels.novigFundingNotice
|
|
7673
|
+
}
|
|
7604
7674
|
) : !submissionFeedback && !shouldShowGeoBlockBanner && needsKalshiConnection ? /* @__PURE__ */ jsx7(
|
|
7605
7675
|
Button,
|
|
7606
7676
|
{
|
|
@@ -7741,6 +7811,44 @@ var PlaceOrder = ({
|
|
|
7741
7811
|
})
|
|
7742
7812
|
}
|
|
7743
7813
|
),
|
|
7814
|
+
isAuthenticated && !isPaperMode && ((novigKeyStatus == null ? void 0 : novigKeyStatus.validatedAt) || (novigKeyStatus == null ? void 0 : novigKeyStatus.hasAccountHistory)) ? /* @__PURE__ */ jsx7(
|
|
7815
|
+
"button",
|
|
7816
|
+
{
|
|
7817
|
+
type: "button",
|
|
7818
|
+
className: "cursor-pointer text-agg-sm text-agg-primary underline",
|
|
7819
|
+
onClick: () => setIsConnectNovigModalOpen(true),
|
|
7820
|
+
children: tradingLabels.manageNovig
|
|
7821
|
+
}
|
|
7822
|
+
) : null,
|
|
7823
|
+
isAuthenticated && isNovigDirect && canConnectNovig && !needsNovigConnection && !(novigKeyStatus == null ? void 0 : novigKeyStatus.connected) && !(novigKeyStatus == null ? void 0 : novigKeyStatus.hasAccountHistory) ? /* @__PURE__ */ jsx7(
|
|
7824
|
+
"button",
|
|
7825
|
+
{
|
|
7826
|
+
type: "button",
|
|
7827
|
+
className: "cursor-pointer text-agg-sm text-agg-primary underline",
|
|
7828
|
+
onClick: () => setIsConnectNovigModalOpen(true),
|
|
7829
|
+
children: tradingLabels.connectNovig
|
|
7830
|
+
}
|
|
7831
|
+
) : null,
|
|
7832
|
+
/* @__PURE__ */ jsx7(
|
|
7833
|
+
ConnectNovigModal,
|
|
7834
|
+
{
|
|
7835
|
+
allowExistingConnection: Boolean(
|
|
7836
|
+
(novigKeyStatus == null ? void 0 : novigKeyStatus.validatedAt) || (novigKeyStatus == null ? void 0 : novigKeyStatus.hasAccountHistory)
|
|
7837
|
+
),
|
|
7838
|
+
onDisconnect: (novigKeyStatus == null ? void 0 : novigKeyStatus.validatedAt) ? () => __async(null, null, function* () {
|
|
7839
|
+
yield aggClient.deleteVenueKey(Venue5.novig);
|
|
7840
|
+
yield refetchNovigKeyStatus();
|
|
7841
|
+
yield queryClient.invalidateQueries({ queryKey: ["agg"] });
|
|
7842
|
+
}) : void 0,
|
|
7843
|
+
open: isConnectNovigModalOpen,
|
|
7844
|
+
onOpenChange: setIsConnectNovigModalOpen,
|
|
7845
|
+
onVerify: (credentials) => __async(null, null, function* () {
|
|
7846
|
+
yield aggClient.upsertVenueKey({ venue: Venue5.novig, credentials });
|
|
7847
|
+
yield refetchNovigKeyStatus();
|
|
7848
|
+
yield queryClient.invalidateQueries({ queryKey: ["agg"] });
|
|
7849
|
+
})
|
|
7850
|
+
}
|
|
7851
|
+
),
|
|
7744
7852
|
/* @__PURE__ */ jsx7(
|
|
7745
7853
|
ConnectKalshiModal,
|
|
7746
7854
|
{
|