@agg-build/ui 2.7.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-C247AYH7.mjs → chunk-KFNTS2TV.mjs} +39 -9
- package/dist/events.js +4 -1
- package/dist/events.mjs +1 -1
- package/dist/index.js +42 -9
- package/dist/index.mjs +2 -2
- package/dist/pages.js +42 -9
- package/dist/pages.mjs +2 -2
- 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/package.json +1 -1
|
@@ -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,
|
|
@@ -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];
|
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.
|
|
@@ -25760,9 +25763,9 @@ var SPORTS_PERIOD_ORDER = [
|
|
|
25760
25763
|
"first_inning",
|
|
25761
25764
|
"second_inning",
|
|
25762
25765
|
"third_inning",
|
|
25763
|
-
"first_5_innings",
|
|
25764
25766
|
"other"
|
|
25765
25767
|
];
|
|
25768
|
+
var FIRST_N_INNINGS_PATTERN = /^first_(\d{1,2})_innings$/;
|
|
25766
25769
|
var SPORTS_MARKET_TYPE_ORDER = [
|
|
25767
25770
|
"to_advance",
|
|
25768
25771
|
"moneyline",
|
|
@@ -25793,6 +25796,10 @@ var stripLineValueFromQuestion = (question) => {
|
|
|
25793
25796
|
var SPORTS_PERIOD_FAMILY_ORDER = ["period", "inning", "set", "map", "game"];
|
|
25794
25797
|
var getSportsPeriodOrderIndex = (period) => {
|
|
25795
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
|
+
}
|
|
25796
25803
|
const periodIndex = SPORTS_PERIOD_ORDER.indexOf(period);
|
|
25797
25804
|
if (periodIndex >= 0) {
|
|
25798
25805
|
return period === "other" ? Number.MAX_SAFE_INTEGER : periodIndex;
|
|
@@ -25895,6 +25902,28 @@ var resolveMarketSectionTabKey = (market) => {
|
|
|
25895
25902
|
if (category === "other") return "other";
|
|
25896
25903
|
return null;
|
|
25897
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
|
+
};
|
|
25898
25927
|
var resolveVisibleSportsSectionTabs = (event) => {
|
|
25899
25928
|
var _a, _b, _c;
|
|
25900
25929
|
const periodsByFamily = /* @__PURE__ */ new Map();
|
|
@@ -25903,7 +25932,7 @@ var resolveVisibleSportsSectionTabs = (event) => {
|
|
|
25903
25932
|
let hasExactScore = false;
|
|
25904
25933
|
let hasOther = false;
|
|
25905
25934
|
for (const market of event.venueMarkets) {
|
|
25906
|
-
const key =
|
|
25935
|
+
const key = resolveEffectiveMarketSectionTabKey(market, event.sport);
|
|
25907
25936
|
if (!key) continue;
|
|
25908
25937
|
if (key === "game_lines") hasGameLines = true;
|
|
25909
25938
|
else if (key === "exact_score") hasExactScore = true;
|
|
@@ -26025,16 +26054,19 @@ var dropDecomposedLegsMergedIntoSingle = (markets) => {
|
|
|
26025
26054
|
var resolveSportsSectionMarkets = ({
|
|
26026
26055
|
tab,
|
|
26027
26056
|
eventMarkets,
|
|
26028
|
-
sectionMarkets
|
|
26057
|
+
sectionMarkets,
|
|
26058
|
+
sport
|
|
26029
26059
|
}) => {
|
|
26030
|
-
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
|
+
);
|
|
26031
26063
|
const filteredSectionMarkets = effectiveSectionMarkets.filter(
|
|
26032
|
-
(market) =>
|
|
26064
|
+
(market) => resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
|
|
26033
26065
|
);
|
|
26034
26066
|
if (tab.key === "other" || tab.key === `stat:${SPORTS_GENERIC_STAT}`) {
|
|
26035
26067
|
const seenIds = new Set(filteredSectionMarkets.map((market) => market.id));
|
|
26036
26068
|
const strayMarkets = eventMarkets.filter(
|
|
26037
|
-
(market) => !seenIds.has(market.id) &&
|
|
26069
|
+
(market) => !seenIds.has(market.id) && resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
|
|
26038
26070
|
);
|
|
26039
26071
|
return [...filteredSectionMarkets, ...strayMarkets];
|
|
26040
26072
|
}
|
|
@@ -27131,9 +27163,10 @@ var SportsMarkets = ({
|
|
|
27131
27163
|
() => resolveSportsSectionMarkets({
|
|
27132
27164
|
tab: activeTab,
|
|
27133
27165
|
eventMarkets: tabSourceMarkets,
|
|
27134
|
-
sectionMarkets
|
|
27166
|
+
sectionMarkets,
|
|
27167
|
+
sport: event.sport
|
|
27135
27168
|
}),
|
|
27136
|
-
[activeTab, tabSourceMarkets, sectionMarkets]
|
|
27169
|
+
[activeTab, tabSourceMarkets, sectionMarkets, event.sport]
|
|
27137
27170
|
);
|
|
27138
27171
|
const isSectionSettled = !isSectionLoading && !hasNextPage && !isFetchingNextPage;
|
|
27139
27172
|
const stableSectionMarkets = stableMarketsByTab[activeTabKey];
|
package/dist/index.mjs
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
UserProfilePage,
|
|
12
12
|
buildAggTxExplorerHref,
|
|
13
13
|
useHomePageModals
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-KFNTS2TV.mjs";
|
|
15
15
|
import {
|
|
16
16
|
EventList,
|
|
17
17
|
EventListItem,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
orderbookRowLimitDefault,
|
|
29
29
|
resolveEventDetailsSyncKey,
|
|
30
30
|
useCenterOrderbookSpread
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-BVNXMHSL.mjs";
|
|
32
32
|
import {
|
|
33
33
|
CARD_NETWORK_OPTIONS,
|
|
34
34
|
DepositModal,
|
package/dist/pages.js
CHANGED
|
@@ -16213,7 +16213,10 @@ var MarketDetailsList = ({
|
|
|
16213
16213
|
} = (0, import_hooks49.useVenueMarkets)({
|
|
16214
16214
|
venueEventId: resolvedEventId,
|
|
16215
16215
|
enabled: !providedMarkets && !!resolvedEventId,
|
|
16216
|
-
status: import_hooks49.MarketStatus.open
|
|
16216
|
+
status: import_hooks49.MarketStatus.open,
|
|
16217
|
+
// Keep in lockstep with useEnrichedVenueEvent: limit is part of the React
|
|
16218
|
+
// Query key, so a mismatch would fork the shared cache into two requests.
|
|
16219
|
+
limit: 40
|
|
16217
16220
|
// No explicit sortBy: event-scoped /venue-markets sorts by the event's
|
|
16218
16221
|
// type-aware order (structureOrderBy), matching the home-card top-3 and the
|
|
16219
16222
|
// markets-under-an-event ordering. Passing sortBy here would override it.
|
|
@@ -23539,9 +23542,9 @@ var SPORTS_PERIOD_ORDER = [
|
|
|
23539
23542
|
"first_inning",
|
|
23540
23543
|
"second_inning",
|
|
23541
23544
|
"third_inning",
|
|
23542
|
-
"first_5_innings",
|
|
23543
23545
|
"other"
|
|
23544
23546
|
];
|
|
23547
|
+
var FIRST_N_INNINGS_PATTERN = /^first_(\d{1,2})_innings$/;
|
|
23545
23548
|
var SPORTS_MARKET_TYPE_ORDER = [
|
|
23546
23549
|
"to_advance",
|
|
23547
23550
|
"moneyline",
|
|
@@ -23572,6 +23575,10 @@ var stripLineValueFromQuestion = (question) => {
|
|
|
23572
23575
|
var SPORTS_PERIOD_FAMILY_ORDER = ["period", "inning", "set", "map", "game"];
|
|
23573
23576
|
var getSportsPeriodOrderIndex = (period) => {
|
|
23574
23577
|
var _a, _b;
|
|
23578
|
+
const inningsMatch = FIRST_N_INNINGS_PATTERN.exec(period);
|
|
23579
|
+
if (inningsMatch) {
|
|
23580
|
+
return SPORTS_PERIOD_ORDER.indexOf("third_inning") + 1 + Number(inningsMatch[1]) / 100;
|
|
23581
|
+
}
|
|
23575
23582
|
const periodIndex = SPORTS_PERIOD_ORDER.indexOf(period);
|
|
23576
23583
|
if (periodIndex >= 0) {
|
|
23577
23584
|
return period === "other" ? Number.MAX_SAFE_INTEGER : periodIndex;
|
|
@@ -23674,6 +23681,28 @@ var resolveMarketSectionTabKey = (market) => {
|
|
|
23674
23681
|
if (category === "other") return "other";
|
|
23675
23682
|
return null;
|
|
23676
23683
|
};
|
|
23684
|
+
var SPORTS_PERIOD_FAMILY_ALLOWED_SPORTS = {
|
|
23685
|
+
halves: /* @__PURE__ */ new Set(["soccer", "basketball", "american_football", "rugby", "aussie_rules"]),
|
|
23686
|
+
quarters: /* @__PURE__ */ new Set(["basketball", "american_football", "lacrosse", "aussie_rules"]),
|
|
23687
|
+
innings: /* @__PURE__ */ new Set(["baseball"]),
|
|
23688
|
+
sets: /* @__PURE__ */ new Set(["tennis", "table_tennis", "volleyball"]),
|
|
23689
|
+
maps: /* @__PURE__ */ new Set(["esports"]),
|
|
23690
|
+
ot: /* @__PURE__ */ new Set(["basketball", "american_football", "hockey", "soccer"])
|
|
23691
|
+
};
|
|
23692
|
+
var PERIOD_N_FAMILY_PATTERN = /^period_\d{1,2}$/;
|
|
23693
|
+
var isPeriodFamilyAllowedForSport = (family, sport) => {
|
|
23694
|
+
if (!sport || sport === "other_sport") return true;
|
|
23695
|
+
if (PERIOD_N_FAMILY_PATTERN.test(family)) return sport === "hockey";
|
|
23696
|
+
const normalizedFamily = FIRST_N_INNINGS_PATTERN.test(family) ? "innings" : family;
|
|
23697
|
+
const allowedSports = SPORTS_PERIOD_FAMILY_ALLOWED_SPORTS[normalizedFamily];
|
|
23698
|
+
return !allowedSports || allowedSports.has(sport);
|
|
23699
|
+
};
|
|
23700
|
+
var resolveEffectiveMarketSectionTabKey = (market, sport) => {
|
|
23701
|
+
const key = resolveMarketSectionTabKey(market);
|
|
23702
|
+
if (!key || !key.startsWith("period:")) return key;
|
|
23703
|
+
const family = key.slice("period:".length);
|
|
23704
|
+
return isPeriodFamilyAllowedForSport(family, sport) ? key : "other";
|
|
23705
|
+
};
|
|
23677
23706
|
var resolveVisibleSportsSectionTabs = (event) => {
|
|
23678
23707
|
var _a, _b, _c;
|
|
23679
23708
|
const periodsByFamily = /* @__PURE__ */ new Map();
|
|
@@ -23682,7 +23711,7 @@ var resolveVisibleSportsSectionTabs = (event) => {
|
|
|
23682
23711
|
let hasExactScore = false;
|
|
23683
23712
|
let hasOther = false;
|
|
23684
23713
|
for (const market of event.venueMarkets) {
|
|
23685
|
-
const key =
|
|
23714
|
+
const key = resolveEffectiveMarketSectionTabKey(market, event.sport);
|
|
23686
23715
|
if (!key) continue;
|
|
23687
23716
|
if (key === "game_lines") hasGameLines = true;
|
|
23688
23717
|
else if (key === "exact_score") hasExactScore = true;
|
|
@@ -23804,16 +23833,19 @@ var dropDecomposedLegsMergedIntoSingle = (markets) => {
|
|
|
23804
23833
|
var resolveSportsSectionMarkets = ({
|
|
23805
23834
|
tab,
|
|
23806
23835
|
eventMarkets,
|
|
23807
|
-
sectionMarkets
|
|
23836
|
+
sectionMarkets,
|
|
23837
|
+
sport
|
|
23808
23838
|
}) => {
|
|
23809
|
-
const effectiveSectionMarkets = sectionMarkets.length > 0 ? sectionMarkets : eventMarkets.filter(
|
|
23839
|
+
const effectiveSectionMarkets = sectionMarkets.length > 0 ? sectionMarkets : eventMarkets.filter(
|
|
23840
|
+
(market) => resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
|
|
23841
|
+
);
|
|
23810
23842
|
const filteredSectionMarkets = effectiveSectionMarkets.filter(
|
|
23811
|
-
(market) =>
|
|
23843
|
+
(market) => resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
|
|
23812
23844
|
);
|
|
23813
23845
|
if (tab.key === "other" || tab.key === `stat:${SPORTS_GENERIC_STAT}`) {
|
|
23814
23846
|
const seenIds = new Set(filteredSectionMarkets.map((market) => market.id));
|
|
23815
23847
|
const strayMarkets = eventMarkets.filter(
|
|
23816
|
-
(market) => !seenIds.has(market.id) &&
|
|
23848
|
+
(market) => !seenIds.has(market.id) && resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
|
|
23817
23849
|
);
|
|
23818
23850
|
return [...filteredSectionMarkets, ...strayMarkets];
|
|
23819
23851
|
}
|
|
@@ -24910,9 +24942,10 @@ var SportsMarkets = ({
|
|
|
24910
24942
|
() => resolveSportsSectionMarkets({
|
|
24911
24943
|
tab: activeTab,
|
|
24912
24944
|
eventMarkets: tabSourceMarkets,
|
|
24913
|
-
sectionMarkets
|
|
24945
|
+
sectionMarkets,
|
|
24946
|
+
sport: event.sport
|
|
24914
24947
|
}),
|
|
24915
|
-
[activeTab, tabSourceMarkets, sectionMarkets]
|
|
24948
|
+
[activeTab, tabSourceMarkets, sectionMarkets, event.sport]
|
|
24916
24949
|
);
|
|
24917
24950
|
const isSectionSettled = !isSectionLoading && !hasNextPage && !isFetchingNextPage;
|
|
24918
24951
|
const stableSectionMarkets = stableMarketsByTab[activeTabKey];
|
package/dist/pages.mjs
CHANGED
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
UserProfilePage,
|
|
9
9
|
buildAggTxExplorerHref,
|
|
10
10
|
useHomePageModals
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-KFNTS2TV.mjs";
|
|
12
|
+
import "./chunk-BVNXMHSL.mjs";
|
|
13
13
|
import {
|
|
14
14
|
DEPOSIT_MODAL_OPEN_EVENT,
|
|
15
15
|
WITHDRAW_MODAL_OPEN_EVENT,
|
|
@@ -44,6 +44,7 @@ export type SportsPeriodGroup = {
|
|
|
44
44
|
markets: VenueMarket[];
|
|
45
45
|
groups: SportsMarketDisplayGroup[];
|
|
46
46
|
};
|
|
47
|
+
export declare const getSportsPeriodOrderIndex: (period: SportsPeriodKey) => number;
|
|
47
48
|
/**
|
|
48
49
|
* Collapse a period into its display FAMILY, so one tab covers the periods a
|
|
49
50
|
* viewer thinks of together: soccer's 1h+2h are a single "Halves" tab (as
|
|
@@ -73,17 +74,26 @@ export declare const resolveSportsStatToken: (market: Pick<VenueMarket, "marketS
|
|
|
73
74
|
* ungrouped market list instead of inventing an empty tab.
|
|
74
75
|
*/
|
|
75
76
|
export declare const resolveMarketSectionTabKey: (market: Pick<VenueMarket, "marketGroup" | "marketCategory" | "marketSubtype" | "question" | "sportsMarketType" | "period">) => string | null;
|
|
76
|
-
|
|
77
|
+
/**
|
|
78
|
+
* `resolveMarketSectionTabKey`, sport-gated: a "period:<family>" key whose
|
|
79
|
+
* family isn't plausible for the event's sport demotes to "other" so the
|
|
80
|
+
* market surfaces under the Other tab instead of a nonsense period tab. Used
|
|
81
|
+
* by both the visible-tabs builder and the section-market filter so a
|
|
82
|
+
* demoted market is never silently dropped from either.
|
|
83
|
+
*/
|
|
84
|
+
export declare const resolveEffectiveMarketSectionTabKey: (market: Parameters<typeof resolveMarketSectionTabKey>[0], sport?: string | null) => string | null;
|
|
85
|
+
export declare const resolveVisibleSportsSectionTabs: (event: Pick<VenueEventWithMarkets, "categories" | "title" | "venueMarkets" | "sport">) => SportsSectionTab[];
|
|
77
86
|
export declare const resolveSportsSectionFilters: (tab: SportsSectionTab) => {
|
|
78
87
|
marketGroup?: SportsMarketGroupKey[];
|
|
79
88
|
marketCategory?: SportsMarketCategoryKey[];
|
|
80
89
|
sportsMarketType?: SportsMarketTypeKey[];
|
|
81
90
|
period?: SportsPeriodKey[];
|
|
82
91
|
};
|
|
83
|
-
export declare const resolveSportsSectionMarkets: ({ tab, eventMarkets, sectionMarkets, }: {
|
|
92
|
+
export declare const resolveSportsSectionMarkets: ({ tab, eventMarkets, sectionMarkets, sport, }: {
|
|
84
93
|
tab: SportsSectionTab;
|
|
85
94
|
eventMarkets: VenueMarket[];
|
|
86
95
|
sectionMarkets: VenueMarket[];
|
|
96
|
+
sport?: string | null;
|
|
87
97
|
}) => VenueMarket[];
|
|
88
98
|
export declare const resolveSportsMarketCardVariant: (market: VenueMarket) => SportsMarketCardVariant;
|
|
89
99
|
export declare const isBinarySportsMoneylineMarket: (market: VenueMarket) => boolean;
|
|
@@ -44,6 +44,7 @@ export type SportsPeriodGroup = {
|
|
|
44
44
|
markets: VenueMarket[];
|
|
45
45
|
groups: SportsMarketDisplayGroup[];
|
|
46
46
|
};
|
|
47
|
+
export declare const getSportsPeriodOrderIndex: (period: SportsPeriodKey) => number;
|
|
47
48
|
/**
|
|
48
49
|
* Collapse a period into its display FAMILY, so one tab covers the periods a
|
|
49
50
|
* viewer thinks of together: soccer's 1h+2h are a single "Halves" tab (as
|
|
@@ -73,17 +74,26 @@ export declare const resolveSportsStatToken: (market: Pick<VenueMarket, "marketS
|
|
|
73
74
|
* ungrouped market list instead of inventing an empty tab.
|
|
74
75
|
*/
|
|
75
76
|
export declare const resolveMarketSectionTabKey: (market: Pick<VenueMarket, "marketGroup" | "marketCategory" | "marketSubtype" | "question" | "sportsMarketType" | "period">) => string | null;
|
|
76
|
-
|
|
77
|
+
/**
|
|
78
|
+
* `resolveMarketSectionTabKey`, sport-gated: a "period:<family>" key whose
|
|
79
|
+
* family isn't plausible for the event's sport demotes to "other" so the
|
|
80
|
+
* market surfaces under the Other tab instead of a nonsense period tab. Used
|
|
81
|
+
* by both the visible-tabs builder and the section-market filter so a
|
|
82
|
+
* demoted market is never silently dropped from either.
|
|
83
|
+
*/
|
|
84
|
+
export declare const resolveEffectiveMarketSectionTabKey: (market: Parameters<typeof resolveMarketSectionTabKey>[0], sport?: string | null) => string | null;
|
|
85
|
+
export declare const resolveVisibleSportsSectionTabs: (event: Pick<VenueEventWithMarkets, "categories" | "title" | "venueMarkets" | "sport">) => SportsSectionTab[];
|
|
77
86
|
export declare const resolveSportsSectionFilters: (tab: SportsSectionTab) => {
|
|
78
87
|
marketGroup?: SportsMarketGroupKey[];
|
|
79
88
|
marketCategory?: SportsMarketCategoryKey[];
|
|
80
89
|
sportsMarketType?: SportsMarketTypeKey[];
|
|
81
90
|
period?: SportsPeriodKey[];
|
|
82
91
|
};
|
|
83
|
-
export declare const resolveSportsSectionMarkets: ({ tab, eventMarkets, sectionMarkets, }: {
|
|
92
|
+
export declare const resolveSportsSectionMarkets: ({ tab, eventMarkets, sectionMarkets, sport, }: {
|
|
84
93
|
tab: SportsSectionTab;
|
|
85
94
|
eventMarkets: VenueMarket[];
|
|
86
95
|
sectionMarkets: VenueMarket[];
|
|
96
|
+
sport?: string | null;
|
|
87
97
|
}) => VenueMarket[];
|
|
88
98
|
export declare const resolveSportsMarketCardVariant: (market: VenueMarket) => SportsMarketCardVariant;
|
|
89
99
|
export declare const isBinarySportsMoneylineMarket: (market: VenueMarket) => boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agg-build/ui",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.1",
|
|
4
4
|
"description": "Pre-built React component library for the AGG prediction market aggregator. Tailwind-based, themeable, with primitives, event surfaces, trading flows, full pages, and modals.",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"license": "MIT",
|