@agg-build/ui 4.26.1 → 4.27.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/event-trading-state.utils-B3my25Re.mjs +789 -0
- package/dist/event-trading-state.utils-s4DEc4iA.js +921 -0
- package/dist/events.js +23 -17658
- package/dist/events.mjs +3 -50
- package/dist/index.js +811 -47152
- package/dist/index.mjs +584 -1204
- package/dist/list-D8v2SmY1.js +6989 -0
- package/dist/list-DD7roCVl.mjs +6838 -0
- package/dist/manage-betdex-account-modal-21ZVLsz0.js +2390 -0
- package/dist/manage-betdex-account-modal-D2vKHird.mjs +2294 -0
- package/dist/modals-BReGwJzz.mjs +2993 -0
- package/dist/modals-CSexQO1C.js +3077 -0
- package/dist/modals.js +24 -11810
- package/dist/modals.mjs +3 -49
- package/dist/pages-CMlCYngA.mjs +7846 -0
- package/dist/pages-xvAzj6c2.js +7955 -0
- package/dist/pages.js +25 -42391
- package/dist/pages.mjs +3 -57
- package/dist/primitives-CqxNeV7H.js +9930 -0
- package/dist/primitives-Dz5aF8ma.mjs +8928 -0
- package/dist/primitives.js +102 -11079
- package/dist/primitives.mjs +1 -204
- package/dist/trading-CDkNdjGx.mjs +7086 -0
- package/dist/trading-CXsZFd3l.js +7217 -0
- package/dist/trading.js +39 -18215
- package/dist/trading.mjs +3 -68
- package/dist/types/agg-provider.d.mts +1 -1
- package/dist/types/agg-provider.d.ts +1 -1
- package/dist/types/auth/connect-button-view/index.d.mts +4 -5
- package/dist/types/auth/connect-button-view/index.d.ts +4 -5
- package/dist/types/deposit/components/DepositQRCode.d.mts +2 -2
- package/dist/types/deposit/components/DepositQRCode.d.ts +2 -2
- package/dist/types/deposit/index.d.mts +4 -4
- package/dist/types/deposit/index.d.ts +4 -4
- package/dist/types/deposit/steps/card-deposit.d.mts +1 -1
- package/dist/types/deposit/steps/card-deposit.d.ts +1 -1
- package/dist/types/deposit/steps/card-payment-pending.d.mts +1 -1
- package/dist/types/deposit/steps/card-payment-pending.d.ts +1 -1
- package/dist/types/deposit/steps/card-provider.d.mts +1 -1
- package/dist/types/deposit/steps/card-provider.d.ts +1 -1
- package/dist/types/deposit/steps/card-purchase-success.d.mts +1 -1
- package/dist/types/deposit/steps/card-purchase-success.d.ts +1 -1
- package/dist/types/deposit/steps/card-widget.d.mts +1 -1
- package/dist/types/deposit/steps/card-widget.d.ts +1 -1
- package/dist/types/deposit/steps/crypto-transfer.d.mts +1 -1
- package/dist/types/deposit/steps/crypto-transfer.d.ts +1 -1
- package/dist/types/deposit/steps/deposit-method.d.mts +2 -1
- package/dist/types/deposit/steps/deposit-method.d.ts +2 -1
- package/dist/types/deposit/steps/venue-selection.d.mts +1 -1
- package/dist/types/deposit/steps/venue-selection.d.ts +1 -1
- package/dist/types/deposit/steps/wallet-form.d.mts +1 -1
- package/dist/types/deposit/steps/wallet-form.d.ts +1 -1
- package/dist/types/deposit/steps/wallet-processing.d.mts +1 -1
- package/dist/types/deposit/steps/wallet-processing.d.ts +1 -1
- package/dist/types/deposit/steps/wallet-success.d.mts +1 -1
- package/dist/types/deposit/steps/wallet-success.d.ts +1 -1
- package/dist/types/events/item/event-list-item.utils.d.mts +1 -1
- package/dist/types/events/item/event-list-item.utils.d.ts +1 -1
- package/dist/types/events/item/index.d.mts +8 -8
- package/dist/types/events/item/index.d.ts +8 -8
- package/dist/types/events/item-details/event-list-item-details-market-selector.d.mts +1 -1
- package/dist/types/events/item-details/event-list-item-details-market-selector.d.ts +1 -1
- package/dist/types/events/item-details/event-markets-chart.d.mts +1 -1
- package/dist/types/events/item-details/event-markets-chart.d.ts +1 -1
- package/dist/types/events/item-details/event-markets-chart.utils.d.mts +1 -1
- package/dist/types/events/item-details/event-markets-chart.utils.d.ts +1 -1
- package/dist/types/events/item-details/index.d.mts +4 -4
- package/dist/types/events/item-details/index.d.ts +4 -4
- package/dist/types/events/item-details/settlement-summary.d.mts +4 -4
- package/dist/types/events/item-details/settlement-summary.d.ts +4 -4
- package/dist/types/events/list/category-sidebar.d.mts +4 -4
- package/dist/types/events/list/category-sidebar.d.ts +4 -4
- package/dist/types/events/list/event-list-tabs.d.mts +4 -8
- package/dist/types/events/list/event-list-tabs.d.ts +4 -8
- package/dist/types/events/list/event-list-venue-strip.d.mts +4 -11
- package/dist/types/events/list/event-list-venue-strip.d.ts +4 -11
- package/dist/types/events/list/index.d.mts +4 -4
- package/dist/types/events/list/index.d.ts +4 -4
- package/dist/types/events/market-details/index.d.mts +8 -8
- package/dist/types/events/market-details/index.d.ts +8 -8
- package/dist/types/events/market-details/market-details-graph-panel.d.mts +4 -14
- package/dist/types/events/market-details/market-details-graph-panel.d.ts +4 -14
- package/dist/types/events/market-details/market-details-outcome-button.d.mts +4 -4
- package/dist/types/events/market-details/market-details-outcome-button.d.ts +4 -4
- package/dist/types/events/market-details/orderbook-aggregation.d.mts +3 -1
- package/dist/types/events/market-details/orderbook-aggregation.d.ts +3 -1
- package/dist/types/events/market-details/use-visible-market-streams.d.mts +1 -1
- package/dist/types/events/market-details/use-visible-market-streams.d.ts +1 -1
- package/dist/types/events/orderbook/index.d.mts +4 -4
- package/dist/types/events/orderbook/index.d.ts +4 -4
- package/dist/types/events/orderbook/orderbook-with-states.d.mts +4 -4
- package/dist/types/events/orderbook/orderbook-with-states.d.ts +4 -4
- package/dist/types/events/shared/chart-source-caption.d.mts +1 -1
- package/dist/types/events/shared/chart-source-caption.d.ts +1 -1
- package/dist/types/events/shared/sports-live-score.d.mts +4 -4
- package/dist/types/events/shared/sports-live-score.d.ts +4 -4
- package/dist/types/events/shared/use-chart-orderbook.d.mts +3 -3
- package/dist/types/events/shared/use-chart-orderbook.d.ts +3 -3
- package/dist/types/geo-block-banner/index.d.mts +4 -4
- package/dist/types/geo-block-banner/index.d.ts +4 -4
- package/dist/types/geo-block-modal/index.d.mts +4 -4
- package/dist/types/geo-block-modal/index.d.ts +4 -4
- package/dist/types/kyc/shared-kyc-modal.d.mts +4 -4
- package/dist/types/kyc/shared-kyc-modal.d.ts +4 -4
- package/dist/types/notifications/agg-notification-events-provider.d.mts +1 -1
- package/dist/types/notifications/agg-notification-events-provider.d.ts +1 -1
- package/dist/types/notifications/agg-toast-provider.d.mts +1 -1
- package/dist/types/notifications/agg-toast-provider.d.ts +1 -1
- package/dist/types/onboarding/index.d.mts +4 -4
- package/dist/types/onboarding/index.d.ts +4 -4
- package/dist/types/onboarding/steps/connect-accounts.d.mts +4 -4
- package/dist/types/onboarding/steps/connect-accounts.d.ts +4 -4
- package/dist/types/onboarding/steps/connect-kalshi-modal.d.mts +4 -4
- package/dist/types/onboarding/steps/connect-kalshi-modal.d.ts +4 -4
- package/dist/types/onboarding/steps/connect-novig-modal.d.mts +1 -1
- package/dist/types/onboarding/steps/connect-novig-modal.d.ts +1 -1
- package/dist/types/onboarding/steps/connect-onchain-modal.d.mts +4 -4
- package/dist/types/onboarding/steps/connect-onchain-modal.d.ts +4 -4
- package/dist/types/onboarding/steps/connect-prophetx-modal.d.mts +1 -1
- package/dist/types/onboarding/steps/connect-prophetx-modal.d.ts +1 -1
- package/dist/types/onboarding/steps/how-it-works.d.mts +4 -4
- package/dist/types/onboarding/steps/how-it-works.d.ts +4 -4
- package/dist/types/onboarding/steps/profile-setup.d.mts +4 -4
- package/dist/types/onboarding/steps/profile-setup.d.ts +4 -4
- package/dist/types/pages/event-market/event-market.shared.d.mts +4 -4
- package/dist/types/pages/event-market/event-market.shared.d.ts +4 -4
- package/dist/types/pages/event-market/event-market.types.d.mts +2 -0
- package/dist/types/pages/event-market/event-market.types.d.ts +2 -0
- package/dist/types/pages/event-market/event-open-orders.d.mts +8 -27
- package/dist/types/pages/event-market/event-open-orders.d.ts +8 -27
- package/dist/types/pages/event-market/index.d.mts +6 -6
- package/dist/types/pages/event-market/index.d.ts +6 -6
- package/dist/types/pages/event-market/sports-event-market-page.d.mts +6 -6
- package/dist/types/pages/event-market/sports-event-market-page.d.ts +6 -6
- package/dist/types/pages/event-market/sports-line-rail.d.mts +2 -1
- package/dist/types/pages/event-market/sports-line-rail.d.ts +2 -1
- package/dist/types/pages/event-market/sports-market-card.d.mts +4 -4
- package/dist/types/pages/event-market/sports-market-card.d.ts +4 -4
- package/dist/types/pages/event-market/sports-markets.d.mts +4 -4
- package/dist/types/pages/event-market/sports-markets.d.ts +4 -4
- package/dist/types/pages/home/index.d.mts +6 -6
- package/dist/types/pages/home/index.d.ts +6 -6
- package/dist/types/pages/leaderboard/components/leaderboard-header-row.d.mts +1 -1
- package/dist/types/pages/leaderboard/components/leaderboard-header-row.d.ts +1 -1
- package/dist/types/pages/leaderboard/components/leaderboard-row.d.mts +1 -1
- package/dist/types/pages/leaderboard/components/leaderboard-row.d.ts +1 -1
- package/dist/types/pages/leaderboard/components/leaderboard-skeleton.d.mts +1 -1
- package/dist/types/pages/leaderboard/components/leaderboard-skeleton.d.ts +1 -1
- package/dist/types/pages/leaderboard/components/segmented-control.d.mts +1 -1
- package/dist/types/pages/leaderboard/components/segmented-control.d.ts +1 -1
- package/dist/types/pages/leaderboard/index.d.mts +1 -1
- package/dist/types/pages/leaderboard/index.d.ts +1 -1
- package/dist/types/pages/user-profile/components/activity-row.d.mts +4 -4
- package/dist/types/pages/user-profile/components/activity-row.d.ts +4 -4
- package/dist/types/pages/user-profile/components/available-balance-card.d.mts +4 -4
- package/dist/types/pages/user-profile/components/available-balance-card.d.ts +4 -4
- package/dist/types/pages/user-profile/components/balance-display.d.mts +4 -4
- package/dist/types/pages/user-profile/components/balance-display.d.ts +4 -4
- package/dist/types/pages/user-profile/components/balances-card.d.mts +4 -4
- package/dist/types/pages/user-profile/components/balances-card.d.ts +4 -4
- package/dist/types/pages/user-profile/components/betdex-account-activity.d.mts +1 -1
- package/dist/types/pages/user-profile/components/betdex-account-activity.d.ts +1 -1
- package/dist/types/pages/user-profile/components/betdex-account-card.d.mts +1 -1
- package/dist/types/pages/user-profile/components/betdex-account-card.d.ts +1 -1
- package/dist/types/pages/user-profile/components/betdex-account-transfers.d.mts +1 -1
- package/dist/types/pages/user-profile/components/betdex-account-transfers.d.ts +1 -1
- package/dist/types/pages/user-profile/components/betdex-wallet-deposit.d.mts +1 -1
- package/dist/types/pages/user-profile/components/betdex-wallet-deposit.d.ts +1 -1
- package/dist/types/pages/user-profile/components/claim-activity-breakdown-modal.d.mts +1 -1
- package/dist/types/pages/user-profile/components/claim-activity-breakdown-modal.d.ts +1 -1
- package/dist/types/pages/user-profile/components/empty-state.d.mts +4 -4
- package/dist/types/pages/user-profile/components/empty-state.d.ts +4 -4
- package/dist/types/pages/user-profile/components/manage-balances-modal.d.mts +4 -4
- package/dist/types/pages/user-profile/components/manage-balances-modal.d.ts +4 -4
- package/dist/types/pages/user-profile/components/open-order-row.d.mts +4 -4
- package/dist/types/pages/user-profile/components/open-order-row.d.ts +4 -4
- package/dist/types/pages/user-profile/components/position-row.d.mts +4 -4
- package/dist/types/pages/user-profile/components/position-row.d.ts +4 -4
- package/dist/types/pages/user-profile/components/positions-activity.d.mts +4 -4
- package/dist/types/pages/user-profile/components/positions-activity.d.ts +4 -4
- package/dist/types/pages/user-profile/components/positions-value-card.d.mts +4 -4
- package/dist/types/pages/user-profile/components/positions-value-card.d.ts +4 -4
- package/dist/types/pages/user-profile/components/user-info-card.d.mts +4 -4
- package/dist/types/pages/user-profile/components/user-info-card.d.ts +4 -4
- package/dist/types/pages/user-profile/index.d.mts +6 -6
- package/dist/types/pages/user-profile/index.d.ts +6 -6
- package/dist/types/paper-trading/paper-onboarding-modal.d.mts +4 -14
- package/dist/types/paper-trading/paper-onboarding-modal.d.ts +4 -14
- package/dist/types/paper-trading/paper-trading-badge.d.mts +4 -16
- package/dist/types/paper-trading/paper-trading-badge.d.ts +4 -16
- package/dist/types/paper-trading/paper-trading-onboarding.d.mts +4 -12
- package/dist/types/paper-trading/paper-trading-onboarding.d.ts +4 -12
- package/dist/types/primitives/agg-logo/agg-logo.utils.d.mts +1 -1
- package/dist/types/primitives/agg-logo/agg-logo.utils.d.ts +1 -1
- package/dist/types/primitives/agg-logo/index.d.mts +4 -5
- package/dist/types/primitives/agg-logo/index.d.ts +4 -5
- package/dist/types/primitives/autocomplete-select/index.d.mts +4 -5
- package/dist/types/primitives/autocomplete-select/index.d.ts +4 -5
- package/dist/types/primitives/badge/index.d.mts +1 -1
- package/dist/types/primitives/badge/index.d.ts +1 -1
- package/dist/types/primitives/button/button.types.d.mts +2 -2
- package/dist/types/primitives/button/button.types.d.ts +2 -2
- package/dist/types/primitives/button/index.d.mts +4 -5
- package/dist/types/primitives/button/index.d.ts +4 -5
- package/dist/types/primitives/calendar/index.d.mts +4 -4
- package/dist/types/primitives/calendar/index.d.ts +4 -4
- package/dist/types/primitives/card/index.d.mts +4 -5
- package/dist/types/primitives/card/index.d.ts +4 -5
- package/dist/types/primitives/chart/chart-type-switch.d.mts +4 -5
- package/dist/types/primitives/chart/chart-type-switch.d.ts +4 -5
- package/dist/types/primitives/chart/index.d.mts +4 -5
- package/dist/types/primitives/chart/index.d.ts +4 -5
- package/dist/types/primitives/chart/probability-chart.d.mts +2 -2
- package/dist/types/primitives/chart/probability-chart.d.ts +2 -2
- package/dist/types/primitives/chart/probability-live-tail.d.mts +1 -1
- package/dist/types/primitives/chart/probability-live-tail.d.ts +1 -1
- package/dist/types/primitives/conditional-wrapper.d.mts +6 -7
- package/dist/types/primitives/conditional-wrapper.d.ts +6 -7
- package/dist/types/primitives/copy-button/index.d.mts +4 -5
- package/dist/types/primitives/copy-button/index.d.ts +4 -5
- package/dist/types/primitives/currency-input/index.d.mts +4 -5
- package/dist/types/primitives/currency-input/index.d.ts +4 -5
- package/dist/types/primitives/footer/agg-build-logo.d.mts +12 -15
- package/dist/types/primitives/footer/agg-build-logo.d.ts +12 -15
- package/dist/types/primitives/footer/index.d.mts +4 -6
- package/dist/types/primitives/footer/index.d.ts +4 -6
- package/dist/types/primitives/header/index.d.mts +4 -6
- package/dist/types/primitives/header/index.d.ts +4 -6
- package/dist/types/primitives/icon/index.d.mts +4 -5
- package/dist/types/primitives/icon/index.d.ts +4 -5
- package/dist/types/primitives/icon/registry.d.mts +180 -351
- package/dist/types/primitives/icon/registry.d.ts +180 -351
- package/dist/types/primitives/icon/svg/activity-chart.d.mts +4 -4
- package/dist/types/primitives/icon/svg/activity-chart.d.ts +4 -4
- package/dist/types/primitives/icon/svg/activity.d.mts +4 -4
- package/dist/types/primitives/icon/svg/activity.d.ts +4 -4
- package/dist/types/primitives/icon/svg/apple.d.mts +4 -4
- package/dist/types/primitives/icon/svg/apple.d.ts +4 -4
- package/dist/types/primitives/icon/svg/apps.d.mts +4 -4
- package/dist/types/primitives/icon/svg/apps.d.ts +4 -4
- package/dist/types/primitives/icon/svg/arbitrum.d.mts +4 -4
- package/dist/types/primitives/icon/svg/arbitrum.d.ts +4 -4
- package/dist/types/primitives/icon/svg/arrow-right.d.mts +4 -4
- package/dist/types/primitives/icon/svg/arrow-right.d.ts +4 -4
- package/dist/types/primitives/icon/svg/arrow-trend-up.d.mts +4 -4
- package/dist/types/primitives/icon/svg/arrow-trend-up.d.ts +4 -4
- package/dist/types/primitives/icon/svg/arrows-to-dot.d.mts +4 -4
- package/dist/types/primitives/icon/svg/arrows-to-dot.d.ts +4 -4
- package/dist/types/primitives/icon/svg/badge-check-thin.d.mts +4 -4
- package/dist/types/primitives/icon/svg/badge-check-thin.d.ts +4 -4
- package/dist/types/primitives/icon/svg/bank.d.mts +4 -4
- package/dist/types/primitives/icon/svg/bank.d.ts +4 -4
- package/dist/types/primitives/icon/svg/base.d.mts +4 -4
- package/dist/types/primitives/icon/svg/base.d.ts +4 -4
- package/dist/types/primitives/icon/svg/best-prices.d.mts +4 -4
- package/dist/types/primitives/icon/svg/best-prices.d.ts +4 -4
- package/dist/types/primitives/icon/svg/bnb.d.mts +4 -4
- package/dist/types/primitives/icon/svg/bnb.d.ts +4 -4
- package/dist/types/primitives/icon/svg/bolt.d.mts +4 -4
- package/dist/types/primitives/icon/svg/bolt.d.ts +4 -4
- package/dist/types/primitives/icon/svg/calendar.d.mts +1 -1
- package/dist/types/primitives/icon/svg/calendar.d.ts +1 -1
- package/dist/types/primitives/icon/svg/chart-candlestick.d.mts +4 -4
- package/dist/types/primitives/icon/svg/chart-candlestick.d.ts +4 -4
- package/dist/types/primitives/icon/svg/chart-line.d.mts +4 -4
- package/dist/types/primitives/icon/svg/chart-line.d.ts +4 -4
- package/dist/types/primitives/icon/svg/check-badge.d.mts +4 -4
- package/dist/types/primitives/icon/svg/check-badge.d.ts +4 -4
- package/dist/types/primitives/icon/svg/check-circle.d.mts +4 -4
- package/dist/types/primitives/icon/svg/check-circle.d.ts +4 -4
- package/dist/types/primitives/icon/svg/chevron-down-thin.d.mts +4 -5
- package/dist/types/primitives/icon/svg/chevron-down-thin.d.ts +4 -5
- package/dist/types/primitives/icon/svg/chevron-down.d.mts +4 -4
- package/dist/types/primitives/icon/svg/chevron-down.d.ts +4 -4
- package/dist/types/primitives/icon/svg/chevron-left.d.mts +4 -4
- package/dist/types/primitives/icon/svg/chevron-left.d.ts +4 -4
- package/dist/types/primitives/icon/svg/chevron-right.d.mts +4 -4
- package/dist/types/primitives/icon/svg/chevron-right.d.ts +4 -4
- package/dist/types/primitives/icon/svg/chevron-up.d.mts +4 -4
- package/dist/types/primitives/icon/svg/chevron-up.d.ts +4 -4
- package/dist/types/primitives/icon/svg/circle-overlap.d.mts +4 -4
- package/dist/types/primitives/icon/svg/circle-overlap.d.ts +4 -4
- package/dist/types/primitives/icon/svg/circle-xmark.d.mts +4 -4
- package/dist/types/primitives/icon/svg/circle-xmark.d.ts +4 -4
- package/dist/types/primitives/icon/svg/close.d.mts +4 -4
- package/dist/types/primitives/icon/svg/close.d.ts +4 -4
- package/dist/types/primitives/icon/svg/copy.d.mts +4 -4
- package/dist/types/primitives/icon/svg/copy.d.ts +4 -4
- package/dist/types/primitives/icon/svg/create-account.d.mts +4 -4
- package/dist/types/primitives/icon/svg/create-account.d.ts +4 -4
- package/dist/types/primitives/icon/svg/credit-card.d.mts +4 -4
- package/dist/types/primitives/icon/svg/credit-card.d.ts +4 -4
- package/dist/types/primitives/icon/svg/cross-circle.d.mts +4 -4
- package/dist/types/primitives/icon/svg/cross-circle.d.ts +4 -4
- package/dist/types/primitives/icon/svg/disconnect.d.mts +4 -4
- package/dist/types/primitives/icon/svg/disconnect.d.ts +4 -4
- package/dist/types/primitives/icon/svg/discord.d.mts +4 -4
- package/dist/types/primitives/icon/svg/discord.d.ts +4 -4
- package/dist/types/primitives/icon/svg/document.d.mts +4 -4
- package/dist/types/primitives/icon/svg/document.d.ts +4 -4
- package/dist/types/primitives/icon/svg/dots-horizontal.d.mts +4 -4
- package/dist/types/primitives/icon/svg/dots-horizontal.d.ts +4 -4
- package/dist/types/primitives/icon/svg/download.d.mts +4 -4
- package/dist/types/primitives/icon/svg/download.d.ts +4 -4
- package/dist/types/primitives/icon/svg/email.d.mts +4 -4
- package/dist/types/primitives/icon/svg/email.d.ts +4 -4
- package/dist/types/primitives/icon/svg/error-filled.d.mts +4 -4
- package/dist/types/primitives/icon/svg/error-filled.d.ts +4 -4
- package/dist/types/primitives/icon/svg/ethereum.d.mts +4 -4
- package/dist/types/primitives/icon/svg/ethereum.d.ts +4 -4
- package/dist/types/primitives/icon/svg/external-link.d.mts +4 -4
- package/dist/types/primitives/icon/svg/external-link.d.ts +4 -4
- package/dist/types/primitives/icon/svg/gift-bonus.d.mts +4 -4
- package/dist/types/primitives/icon/svg/gift-bonus.d.ts +4 -4
- package/dist/types/primitives/icon/svg/google.d.mts +4 -4
- package/dist/types/primitives/icon/svg/google.d.ts +4 -4
- package/dist/types/primitives/icon/svg/hourglass-start.d.mts +4 -4
- package/dist/types/primitives/icon/svg/hourglass-start.d.ts +4 -4
- package/dist/types/primitives/icon/svg/image.d.mts +4 -4
- package/dist/types/primitives/icon/svg/image.d.ts +4 -4
- package/dist/types/primitives/icon/svg/info.d.mts +4 -4
- package/dist/types/primitives/icon/svg/info.d.ts +4 -4
- package/dist/types/primitives/icon/svg/internet-security.d.mts +4 -4
- package/dist/types/primitives/icon/svg/internet-security.d.ts +4 -4
- package/dist/types/primitives/icon/svg/link-accounts.d.mts +4 -4
- package/dist/types/primitives/icon/svg/link-accounts.d.ts +4 -4
- package/dist/types/primitives/icon/svg/lock.d.mts +4 -4
- package/dist/types/primitives/icon/svg/lock.d.ts +4 -4
- package/dist/types/primitives/icon/svg/minus.d.mts +1 -1
- package/dist/types/primitives/icon/svg/minus.d.ts +1 -1
- package/dist/types/primitives/icon/svg/paper-buying-power.d.mts +4 -10
- package/dist/types/primitives/icon/svg/paper-buying-power.d.ts +4 -10
- package/dist/types/primitives/icon/svg/paper-earnings.d.mts +4 -10
- package/dist/types/primitives/icon/svg/paper-earnings.d.ts +4 -10
- package/dist/types/primitives/icon/svg/paper-mode.d.mts +4 -4
- package/dist/types/primitives/icon/svg/paper-mode.d.ts +4 -4
- package/dist/types/primitives/icon/svg/paper-onboarding-funds.d.mts +4 -11
- package/dist/types/primitives/icon/svg/paper-onboarding-funds.d.ts +4 -11
- package/dist/types/primitives/icon/svg/paper-onboarding-markets.d.mts +4 -11
- package/dist/types/primitives/icon/svg/paper-onboarding-markets.d.ts +4 -11
- package/dist/types/primitives/icon/svg/paper-onboarding-performance.d.mts +4 -11
- package/dist/types/primitives/icon/svg/paper-onboarding-performance.d.ts +4 -11
- package/dist/types/primitives/icon/svg/paper-plane.d.mts +4 -4
- package/dist/types/primitives/icon/svg/paper-plane.d.ts +4 -4
- package/dist/types/primitives/icon/svg/pencil.d.mts +4 -4
- package/dist/types/primitives/icon/svg/pencil.d.ts +4 -4
- package/dist/types/primitives/icon/svg/play-square.d.mts +4 -4
- package/dist/types/primitives/icon/svg/play-square.d.ts +4 -4
- package/dist/types/primitives/icon/svg/plus.d.mts +1 -1
- package/dist/types/primitives/icon/svg/plus.d.ts +1 -1
- package/dist/types/primitives/icon/svg/polygon.d.mts +4 -4
- package/dist/types/primitives/icon/svg/polygon.d.ts +4 -4
- package/dist/types/primitives/icon/svg/profile-about-tab.d.mts +4 -5
- package/dist/types/primitives/icon/svg/profile-about-tab.d.ts +4 -5
- package/dist/types/primitives/icon/svg/profile-accounts-wallets-tab.d.mts +4 -5
- package/dist/types/primitives/icon/svg/profile-accounts-wallets-tab.d.ts +4 -5
- package/dist/types/primitives/icon/svg/profile.d.mts +4 -4
- package/dist/types/primitives/icon/svg/profile.d.ts +4 -4
- package/dist/types/primitives/icon/svg/quotes-warning.d.mts +4 -5
- package/dist/types/primitives/icon/svg/quotes-warning.d.ts +4 -5
- package/dist/types/primitives/icon/svg/recenter.d.mts +4 -4
- package/dist/types/primitives/icon/svg/recenter.d.ts +4 -4
- package/dist/types/primitives/icon/svg/revenue-alt.d.mts +4 -4
- package/dist/types/primitives/icon/svg/revenue-alt.d.ts +4 -4
- package/dist/types/primitives/icon/svg/search.d.mts +4 -4
- package/dist/types/primitives/icon/svg/search.d.ts +4 -4
- package/dist/types/primitives/icon/svg/shield-trust.d.mts +4 -4
- package/dist/types/primitives/icon/svg/shield-trust.d.ts +4 -4
- package/dist/types/primitives/icon/svg/solana.d.mts +4 -4
- package/dist/types/primitives/icon/svg/solana.d.ts +4 -4
- package/dist/types/primitives/icon/svg/sort-end-date.d.mts +4 -4
- package/dist/types/primitives/icon/svg/sort-end-date.d.ts +4 -4
- package/dist/types/primitives/icon/svg/sort-top-arbitrage.d.mts +4 -4
- package/dist/types/primitives/icon/svg/sort-top-arbitrage.d.ts +4 -4
- package/dist/types/primitives/icon/svg/sort-volume-24hr.d.mts +4 -4
- package/dist/types/primitives/icon/svg/sort-volume-24hr.d.ts +4 -4
- package/dist/types/primitives/icon/svg/sort-volume.d.mts +4 -4
- package/dist/types/primitives/icon/svg/sort-volume.d.ts +4 -4
- package/dist/types/primitives/icon/svg/sparkles-filled.d.mts +4 -4
- package/dist/types/primitives/icon/svg/sparkles-filled.d.ts +4 -4
- package/dist/types/primitives/icon/svg/spinner.d.mts +4 -4
- package/dist/types/primitives/icon/svg/spinner.d.ts +4 -4
- package/dist/types/primitives/icon/svg/stay-in-control.d.mts +4 -4
- package/dist/types/primitives/icon/svg/stay-in-control.d.ts +4 -4
- package/dist/types/primitives/icon/svg/success-check.d.mts +4 -4
- package/dist/types/primitives/icon/svg/success-check.d.ts +4 -4
- package/dist/types/primitives/icon/svg/telegram.d.mts +4 -4
- package/dist/types/primitives/icon/svg/telegram.d.ts +4 -4
- package/dist/types/primitives/icon/svg/triangle-down.d.mts +4 -4
- package/dist/types/primitives/icon/svg/triangle-down.d.ts +4 -4
- package/dist/types/primitives/icon/svg/triangle-up-filled.d.mts +4 -4
- package/dist/types/primitives/icon/svg/triangle-up-filled.d.ts +4 -4
- package/dist/types/primitives/icon/svg/triangle-up.d.mts +4 -4
- package/dist/types/primitives/icon/svg/triangle-up.d.ts +4 -4
- package/dist/types/primitives/icon/svg/twitter.d.mts +4 -4
- package/dist/types/primitives/icon/svg/twitter.d.ts +4 -4
- package/dist/types/primitives/icon/svg/upload.d.mts +4 -4
- package/dist/types/primitives/icon/svg/upload.d.ts +4 -4
- package/dist/types/primitives/icon/svg/usdc.d.mts +4 -4
- package/dist/types/primitives/icon/svg/usdc.d.ts +4 -4
- package/dist/types/primitives/icon/svg/user-trust.d.mts +4 -4
- package/dist/types/primitives/icon/svg/user-trust.d.ts +4 -4
- package/dist/types/primitives/icon/svg/wallet-avatar.d.mts +1 -1
- package/dist/types/primitives/icon/svg/wallet-avatar.d.ts +1 -1
- package/dist/types/primitives/icon/svg/wallet-filled.d.mts +4 -4
- package/dist/types/primitives/icon/svg/wallet-filled.d.ts +4 -4
- package/dist/types/primitives/icon/svg/wallet.d.mts +4 -4
- package/dist/types/primitives/icon/svg/wallet.d.ts +4 -4
- package/dist/types/primitives/icon/svg/warning-filled.d.mts +4 -4
- package/dist/types/primitives/icon/svg/warning-filled.d.ts +4 -4
- package/dist/types/primitives/icon/svg/warning.d.mts +4 -4
- package/dist/types/primitives/icon/svg/warning.d.ts +4 -4
- package/dist/types/primitives/inline-alert/index.d.mts +4 -5
- package/dist/types/primitives/inline-alert/index.d.ts +4 -5
- package/dist/types/primitives/loading-icon/index.d.mts +4 -5
- package/dist/types/primitives/loading-icon/index.d.ts +4 -5
- package/dist/types/primitives/modal/index.d.mts +12 -9
- package/dist/types/primitives/modal/index.d.ts +12 -9
- package/dist/types/primitives/number-value.d.mts +4 -4
- package/dist/types/primitives/number-value.d.ts +4 -4
- package/dist/types/primitives/remote-image/index.d.mts +4 -5
- package/dist/types/primitives/remote-image/index.d.ts +4 -5
- package/dist/types/primitives/search/index.d.mts +4 -5
- package/dist/types/primitives/search/index.d.ts +4 -5
- package/dist/types/primitives/search/search-empty-icon.d.mts +4 -4
- package/dist/types/primitives/search/search-empty-icon.d.ts +4 -4
- package/dist/types/primitives/select/index.d.mts +4 -5
- package/dist/types/primitives/select/index.d.ts +4 -5
- package/dist/types/primitives/skeleton/index.d.mts +4 -5
- package/dist/types/primitives/skeleton/index.d.ts +4 -5
- package/dist/types/primitives/skeleton/skeleton-block.d.mts +4 -4
- package/dist/types/primitives/skeleton/skeleton-block.d.ts +4 -4
- package/dist/types/primitives/skeleton/views/event-list-item-details-skeleton-view.d.mts +4 -4
- package/dist/types/primitives/skeleton/views/event-list-item-details-skeleton-view.d.ts +4 -4
- package/dist/types/primitives/skeleton/views/event-list-item-skeleton-view.d.mts +4 -10
- package/dist/types/primitives/skeleton/views/event-list-item-skeleton-view.d.ts +4 -10
- package/dist/types/primitives/skeleton/views/event-list-skeleton-view.d.mts +4 -4
- package/dist/types/primitives/skeleton/views/event-list-skeleton-view.d.ts +4 -4
- package/dist/types/primitives/skeleton/views/market-details-skeleton-view.d.mts +5 -5
- package/dist/types/primitives/skeleton/views/market-details-skeleton-view.d.ts +5 -5
- package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.mts +8 -8
- package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.ts +8 -8
- package/dist/types/primitives/skeleton/views/search-skeleton-view.d.mts +4 -4
- package/dist/types/primitives/skeleton/views/search-skeleton-view.d.ts +4 -4
- package/dist/types/primitives/skeleton/views/settlement-skeleton-view.d.mts +4 -4
- package/dist/types/primitives/skeleton/views/settlement-skeleton-view.d.ts +4 -4
- package/dist/types/primitives/skeleton/views/user-profile-overview-skeleton-view.d.mts +4 -4
- package/dist/types/primitives/skeleton/views/user-profile-overview-skeleton-view.d.ts +4 -4
- package/dist/types/primitives/skeleton/views/user-profile-positions-activity-skeleton-view.d.mts +4 -4
- package/dist/types/primitives/skeleton/views/user-profile-positions-activity-skeleton-view.d.ts +4 -4
- package/dist/types/primitives/state-message/index.d.mts +4 -5
- package/dist/types/primitives/state-message/index.d.ts +4 -5
- package/dist/types/primitives/switch-button/index.d.mts +4 -5
- package/dist/types/primitives/switch-button/index.d.ts +4 -5
- package/dist/types/primitives/tabs/index.d.mts +4 -5
- package/dist/types/primitives/tabs/index.d.ts +4 -5
- package/dist/types/primitives/toast/index.d.mts +1 -1
- package/dist/types/primitives/toast/index.d.ts +1 -1
- package/dist/types/primitives/tooltip/index.d.mts +4 -5
- package/dist/types/primitives/tooltip/index.d.ts +4 -5
- package/dist/types/primitives/typography/index.d.mts +4 -5
- package/dist/types/primitives/typography/index.d.ts +4 -5
- package/dist/types/primitives/typography/typography.types.d.mts +1 -1
- package/dist/types/primitives/typography/typography.types.d.ts +1 -1
- package/dist/types/primitives/venue-logo/index.d.mts +4 -5
- package/dist/types/primitives/venue-logo/index.d.ts +4 -5
- package/dist/types/primitives/venue-logo/svg/default-venue.d.mts +1 -1
- package/dist/types/primitives/venue-logo/svg/default-venue.d.ts +1 -1
- package/dist/types/primitives/venue-logo/svg/logo-betdex.d.mts +1 -1
- package/dist/types/primitives/venue-logo/svg/logo-betdex.d.ts +1 -1
- package/dist/types/primitives/venue-logo/svg/logo-hyperliquid.d.mts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-hyperliquid.d.ts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-kalshi.d.mts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-kalshi.d.ts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-limitless.d.mts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-limitless.d.ts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-myriad.d.mts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-myriad.d.ts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-novig.d.mts +4 -23
- package/dist/types/primitives/venue-logo/svg/logo-novig.d.ts +4 -23
- package/dist/types/primitives/venue-logo/svg/logo-opinion.d.mts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-opinion.d.ts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-polymarket.d.mts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-polymarket.d.ts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-pred.d.mts +4 -5
- package/dist/types/primitives/venue-logo/svg/logo-pred.d.ts +4 -5
- package/dist/types/primitives/venue-logo/svg/logo-predict.d.mts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-predict.d.ts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-probable.d.mts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-probable.d.ts +4 -4
- package/dist/types/primitives/venue-logo/svg/logo-prophetx.d.mts +4 -26
- package/dist/types/primitives/venue-logo/svg/logo-prophetx.d.ts +4 -26
- package/dist/types/primitives/venue-logo/svg/logo-tiprun.d.mts +4 -5
- package/dist/types/primitives/venue-logo/svg/logo-tiprun.d.ts +4 -5
- package/dist/types/primitives/venue-logo/venue-logo.constants.d.mts +1 -1
- package/dist/types/primitives/venue-logo/venue-logo.constants.d.ts +1 -1
- package/dist/types/profile/index.d.mts +4 -4
- package/dist/types/profile/index.d.ts +4 -4
- package/dist/types/profile/tabs/about-tab.d.mts +4 -4
- package/dist/types/profile/tabs/about-tab.d.ts +4 -4
- package/dist/types/profile/tabs/accounts-wallets-tab.d.mts +4 -4
- package/dist/types/profile/tabs/accounts-wallets-tab.d.ts +4 -4
- package/dist/types/profile/tabs/trading-access-tab.d.mts +4 -4
- package/dist/types/profile/tabs/trading-access-tab.d.ts +4 -4
- package/dist/types/shared/default-avatar.d.mts +4 -4
- package/dist/types/shared/default-avatar.d.ts +4 -4
- package/dist/types/shared/open-orders.d.mts +1 -1
- package/dist/types/shared/open-orders.d.ts +1 -1
- package/dist/types/shared/react-inert.d.mts +1 -0
- package/dist/types/shared/react-inert.d.ts +1 -0
- package/dist/types/shared/transfer-fee-summary.d.mts +1 -1
- package/dist/types/shared/transfer-fee-summary.d.ts +1 -1
- package/dist/types/trading/fund-kalshi-modal.d.mts +4 -4
- package/dist/types/trading/fund-kalshi-modal.d.ts +4 -4
- package/dist/types/trading/manage-betdex-account-modal.d.mts +1 -1
- package/dist/types/trading/manage-betdex-account-modal.d.ts +1 -1
- package/dist/types/trading/place-order/index.d.mts +4 -4
- package/dist/types/trading/place-order/index.d.ts +4 -4
- package/dist/types/trading/place-order/index.place-order.execution-view.d.mts +6 -6
- package/dist/types/trading/place-order/index.place-order.execution-view.d.ts +6 -6
- package/dist/types/trading/place-order/index.place-order.failure.d.mts +4 -4
- package/dist/types/trading/place-order/index.place-order.failure.d.ts +4 -4
- package/dist/types/trading/place-order/index.place-order.success.d.mts +4 -4
- package/dist/types/trading/place-order/index.place-order.success.d.ts +4 -4
- package/dist/types/trading/settlement/index.d.mts +4 -4
- package/dist/types/trading/settlement/index.d.ts +4 -4
- package/dist/types/trading/settlement/settlement-details.d.mts +4 -4
- package/dist/types/trading/settlement/settlement-details.d.ts +4 -4
- package/dist/types/trading/settlement/settlement-text-renderer.d.mts +4 -4
- package/dist/types/trading/settlement/settlement-text-renderer.d.ts +4 -4
- package/dist/types/withdraw/index.d.mts +4 -4
- package/dist/types/withdraw/index.d.ts +4 -4
- package/dist/types/withdraw/steps/withdraw-amount.d.mts +1 -1
- package/dist/types/withdraw/steps/withdraw-amount.d.ts +1 -1
- package/dist/types/withdraw/steps/withdraw-method.d.mts +1 -1
- package/dist/types/withdraw/steps/withdraw-method.d.ts +1 -1
- package/dist/types/withdraw/steps/withdraw-provider.d.mts +1 -1
- package/dist/types/withdraw/steps/withdraw-provider.d.ts +1 -1
- package/dist/types/withdraw/steps/withdraw-success.d.mts +2 -2
- package/dist/types/withdraw/steps/withdraw-success.d.ts +2 -2
- package/package.json +9 -8
- package/dist/chunk-6CZNJSRL.mjs +0 -3551
- package/dist/chunk-7G2GTWAS.mjs +0 -5189
- package/dist/chunk-7ORC3TUJ.mjs +0 -2883
- package/dist/chunk-EJXA32MG.mjs +0 -2377
- package/dist/chunk-JH4B3ZHQ.mjs +0 -1
- package/dist/chunk-KN7JN7F5.mjs +0 -8303
- package/dist/chunk-PN5HEBFC.mjs +0 -5789
- package/dist/chunk-W2LCFCW3.mjs +0 -2879
- package/dist/chunk-WOCZ4TVT.mjs +0 -1645
- package/dist/chunk-XZVGHKMW.mjs +0 -11426
- package/dist/event-market-A276CAYG.mjs +0 -21
|
@@ -0,0 +1,789 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { B as Skeleton, Fn as cn, P as VenueLogo, V as skeletonViews, Wn as resolveResolvedOutcomeLabel, mt as Card, zn as formatUsd } from "./primitives-Dz5aF8ma.mjs";
|
|
3
|
+
import { Fragment, useEffect, useMemo, useState } from "react";
|
|
4
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { resolveAggUiLabels, useEventTradingContext as useEventTradingContext$1, useLabels } from "@agg-build/hooks";
|
|
6
|
+
import dayjs from "dayjs";
|
|
7
|
+
import { hasShape, safeParse } from "@agg-build/sdk";
|
|
8
|
+
//#region src/events/orderbook/orderbook.utils.ts
|
|
9
|
+
const isOrderBookLevel = (v) => hasShape(v, {
|
|
10
|
+
price: (p) => typeof p === "number" && p >= 0 && p <= 1,
|
|
11
|
+
size: (s) => typeof s === "number" && s >= 0
|
|
12
|
+
});
|
|
13
|
+
const isOrderBookRow = (v) => hasShape(v, {
|
|
14
|
+
id: (x) => typeof x === "string",
|
|
15
|
+
venue: (x) => typeof x === "string" && x.length > 0,
|
|
16
|
+
price: (p) => typeof p === "number" && p >= 0 && p <= 1,
|
|
17
|
+
size: (s) => typeof s === "number" && s >= 0,
|
|
18
|
+
total: (t) => typeof t === "number" && t >= 0,
|
|
19
|
+
tone: (x) => x === "positive" || x === "negative"
|
|
20
|
+
});
|
|
21
|
+
const formatProbabilityCents = (value, formatPrice) => {
|
|
22
|
+
if (value == null) return "-";
|
|
23
|
+
if (formatPrice) return formatPrice(value);
|
|
24
|
+
return `${(value * 100).toFixed(1).replace(/\.0$/, "")}\u00A2`;
|
|
25
|
+
};
|
|
26
|
+
const resolveOrderBookRows = ({ data, side }) => {
|
|
27
|
+
if (!data?.length) return [];
|
|
28
|
+
const tone = side === "asks" ? "negative" : "positive";
|
|
29
|
+
const sortedRows = [...data.flatMap((result) => {
|
|
30
|
+
return (result.orderbook[side] ?? []).flatMap((level, index) => {
|
|
31
|
+
const parsedLevel = safeParse(level, isOrderBookLevel);
|
|
32
|
+
if (!parsedLevel.success) return [];
|
|
33
|
+
const parsedRow = safeParse({
|
|
34
|
+
id: `${result.market.id}-${side}-${index}-${parsedLevel.data.price}`,
|
|
35
|
+
venue: result.market.venue,
|
|
36
|
+
price: parsedLevel.data.price,
|
|
37
|
+
size: parsedLevel.data.size,
|
|
38
|
+
total: parsedLevel.data.price * parsedLevel.data.size,
|
|
39
|
+
tone
|
|
40
|
+
}, isOrderBookRow);
|
|
41
|
+
if (!parsedRow.success) return [];
|
|
42
|
+
return [parsedRow.data];
|
|
43
|
+
});
|
|
44
|
+
})].sort((left, right) => {
|
|
45
|
+
if (side === "asks") return left.price - right.price;
|
|
46
|
+
return right.price - left.price;
|
|
47
|
+
});
|
|
48
|
+
const maxTotal = sortedRows.reduce((currentMax, row) => Math.max(currentMax, row.total), 0) || 1;
|
|
49
|
+
return sortedRows.map((row) => ({
|
|
50
|
+
...row,
|
|
51
|
+
barScale: row.total / maxTotal
|
|
52
|
+
}));
|
|
53
|
+
};
|
|
54
|
+
const resolveUnifiedOrderBookEntries = ({ askRows, bidRows, midPrice, spread }) => {
|
|
55
|
+
const asksDescending = [...askRows].reverse();
|
|
56
|
+
const askCumulativeDepths = new Array(asksDescending.length);
|
|
57
|
+
let cumulative = 0;
|
|
58
|
+
for (let i = asksDescending.length - 1; i >= 0; i--) {
|
|
59
|
+
cumulative += asksDescending[i].total;
|
|
60
|
+
askCumulativeDepths[i] = cumulative;
|
|
61
|
+
}
|
|
62
|
+
const bidCumulativeDepths = new Array(bidRows.length);
|
|
63
|
+
cumulative = 0;
|
|
64
|
+
for (let i = 0; i < bidRows.length; i++) {
|
|
65
|
+
cumulative += bidRows[i].total;
|
|
66
|
+
bidCumulativeDepths[i] = cumulative;
|
|
67
|
+
}
|
|
68
|
+
const maxAskCumulative = askCumulativeDepths.length > 0 ? askCumulativeDepths[0] : 0;
|
|
69
|
+
const maxBidCumulative = bidCumulativeDepths.length > 0 ? bidCumulativeDepths[bidCumulativeDepths.length - 1] : 0;
|
|
70
|
+
const askMax = maxAskCumulative || 1;
|
|
71
|
+
const bidMax = maxBidCumulative || 1;
|
|
72
|
+
const askEntries = asksDescending.map((row, index) => ({
|
|
73
|
+
kind: "ask",
|
|
74
|
+
row,
|
|
75
|
+
cumulativeDepth: askCumulativeDepths[index],
|
|
76
|
+
unifiedBarScale: askCumulativeDepths[index] / askMax
|
|
77
|
+
}));
|
|
78
|
+
const bidEntries = bidRows.map((row, index) => ({
|
|
79
|
+
kind: "bid",
|
|
80
|
+
row,
|
|
81
|
+
cumulativeDepth: bidCumulativeDepths[index],
|
|
82
|
+
unifiedBarScale: bidCumulativeDepths[index] / bidMax
|
|
83
|
+
}));
|
|
84
|
+
const spreadEntry = {
|
|
85
|
+
kind: "spread",
|
|
86
|
+
midPrice,
|
|
87
|
+
spread
|
|
88
|
+
};
|
|
89
|
+
return [
|
|
90
|
+
...askEntries,
|
|
91
|
+
spreadEntry,
|
|
92
|
+
...bidEntries
|
|
93
|
+
];
|
|
94
|
+
};
|
|
95
|
+
//#endregion
|
|
96
|
+
//#region src/events/shared/display-reference-price.ts
|
|
97
|
+
const getDisplayReferencePrice = ({ bestMidpoint, fallbackPrice }) => {
|
|
98
|
+
return bestMidpoint ?? fallbackPrice ?? void 0;
|
|
99
|
+
};
|
|
100
|
+
//#endregion
|
|
101
|
+
//#region src/events/shared/select-outcome-price.ts
|
|
102
|
+
const selectOutcomePrice = ({ outcomeId, selection, bestPrices, bestMidpointsByOutcomeId, livePrices, fallbackPrice }) => {
|
|
103
|
+
if (!outcomeId) return void 0;
|
|
104
|
+
if (selection === "buy") {
|
|
105
|
+
const bestAsk = bestPrices?.get(outcomeId)?.bestAsk;
|
|
106
|
+
if (bestAsk != null) return bestAsk;
|
|
107
|
+
} else if (selection === "sell") {
|
|
108
|
+
const bestBid = bestPrices?.get(outcomeId)?.bestBid;
|
|
109
|
+
if (bestBid != null) return bestBid;
|
|
110
|
+
}
|
|
111
|
+
const livePrice = livePrices?.get(outcomeId);
|
|
112
|
+
if (livePrice != null) return livePrice;
|
|
113
|
+
const midpointPrice = bestMidpointsByOutcomeId?.get(outcomeId);
|
|
114
|
+
if (midpointPrice != null) return midpointPrice;
|
|
115
|
+
return fallbackPrice ?? void 0;
|
|
116
|
+
};
|
|
117
|
+
//#endregion
|
|
118
|
+
//#region src/events/shared/display-outcome-price.ts
|
|
119
|
+
const normalizeOutcomeLabel = (label) => {
|
|
120
|
+
return typeof label === "string" ? label.trim().toLowerCase() : "";
|
|
121
|
+
};
|
|
122
|
+
const getDisplayOutcomePrice = ({ outcomeId, outcomeLabel, selection, bestPrices, bestMidpoint, bestMidpointsByOutcomeId, livePrices, fallbackPrice }) => {
|
|
123
|
+
if (selection && outcomeId) return selectOutcomePrice({
|
|
124
|
+
outcomeId,
|
|
125
|
+
selection,
|
|
126
|
+
bestPrices,
|
|
127
|
+
bestMidpointsByOutcomeId,
|
|
128
|
+
livePrices,
|
|
129
|
+
fallbackPrice
|
|
130
|
+
});
|
|
131
|
+
const livePrice = outcomeId ? livePrices?.get(outcomeId) : void 0;
|
|
132
|
+
if (livePrice != null) return livePrice;
|
|
133
|
+
const resolvedFallbackPrice = (outcomeId ? bestMidpointsByOutcomeId?.get(outcomeId) : void 0) ?? fallbackPrice ?? void 0;
|
|
134
|
+
if (normalizeOutcomeLabel(outcomeLabel) === "yes") return getDisplayReferencePrice({
|
|
135
|
+
bestMidpoint,
|
|
136
|
+
fallbackPrice: resolvedFallbackPrice
|
|
137
|
+
});
|
|
138
|
+
return resolvedFallbackPrice;
|
|
139
|
+
};
|
|
140
|
+
//#endregion
|
|
141
|
+
//#region src/trading/utils.ts
|
|
142
|
+
const defaultLabels = resolveAggUiLabels("en-US");
|
|
143
|
+
const defaultSettlementSectionLabel = defaultLabels.trading.settlementSection;
|
|
144
|
+
const defaultTradingDisclaimer = defaultLabels.trading.disclaimer;
|
|
145
|
+
const getTradingDateLabel = (value) => {
|
|
146
|
+
const parsedValue = dayjs(value);
|
|
147
|
+
if (!parsedValue.isValid()) return typeof value === "string" ? value : "";
|
|
148
|
+
return parsedValue.format("MMM D, YYYY");
|
|
149
|
+
};
|
|
150
|
+
const getTradingVenueLabel = (venue, label) => {
|
|
151
|
+
if (label) return label;
|
|
152
|
+
if (!venue) return "Unknown";
|
|
153
|
+
return defaultLabels.venues[venue] ?? venue;
|
|
154
|
+
};
|
|
155
|
+
const getTradingValueLabel = ({ amount, minimumFractionDigits = 0, maximumFractionDigits = 2 }) => {
|
|
156
|
+
return amount.toLocaleString("en-US", {
|
|
157
|
+
style: "currency",
|
|
158
|
+
currency: "USD",
|
|
159
|
+
minimumFractionDigits,
|
|
160
|
+
maximumFractionDigits
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
const getTradingPriceLabel = (value) => {
|
|
164
|
+
return `${Math.round(value * 100)}¢`;
|
|
165
|
+
};
|
|
166
|
+
const getTradingAveragePriceLabel = (value) => {
|
|
167
|
+
return defaultLabels.trading.averagePrice(value);
|
|
168
|
+
};
|
|
169
|
+
const getTradingBalanceLabel = (value) => {
|
|
170
|
+
return defaultLabels.trading.balance(formatUsd(value));
|
|
171
|
+
};
|
|
172
|
+
const getTradingSharesLabel = (value) => {
|
|
173
|
+
return defaultLabels.trading.shares(value);
|
|
174
|
+
};
|
|
175
|
+
const getTradingSlippageLabel = (value) => {
|
|
176
|
+
return defaultLabels.trading.slippage(value);
|
|
177
|
+
};
|
|
178
|
+
//#endregion
|
|
179
|
+
//#region src/trading/settlement/settlement-text.utils.ts
|
|
180
|
+
const stripHtmlFragments = (text) => {
|
|
181
|
+
return text.replace(/<\s*p\s*>/gi, "").replace(/<\s*\/\s*p\s*>/gi, "\n\n").replace(/<\s*br\s*\/?\s*>/gi, "\n").replace(/\r\n/g, "\n");
|
|
182
|
+
};
|
|
183
|
+
const isListLine = (line) => /^\s*[-*]\s+/.test(line);
|
|
184
|
+
const stripBullet = (line) => line.replace(/^\s*[-*]\s+/, "").trim();
|
|
185
|
+
const parseSettlementBlocks = (input) => {
|
|
186
|
+
const normalized = stripHtmlFragments(input).trim();
|
|
187
|
+
if (!normalized) return [];
|
|
188
|
+
const paragraphs = normalized.split(/\n{2,}/);
|
|
189
|
+
const blocks = [];
|
|
190
|
+
for (const rawParagraph of paragraphs) {
|
|
191
|
+
const lines = rawParagraph.split("\n").map((line) => line.replace(/\s+$/, "")).filter((line) => line.trim().length > 0);
|
|
192
|
+
if (lines.length === 0) continue;
|
|
193
|
+
if (lines.every(isListLine)) {
|
|
194
|
+
blocks.push({
|
|
195
|
+
kind: "list",
|
|
196
|
+
items: lines.map(stripBullet)
|
|
197
|
+
});
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
blocks.push({
|
|
201
|
+
kind: "paragraph",
|
|
202
|
+
lines: lines.map((line) => line.trim())
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
return blocks;
|
|
206
|
+
};
|
|
207
|
+
/** Lower-cased, whitespace-collapsed form used for dedup comparisons. */
|
|
208
|
+
const normalizeSettlementForCompare = (input) => {
|
|
209
|
+
return stripHtmlFragments(input).replace(/\s+/g, " ").trim().toLowerCase();
|
|
210
|
+
};
|
|
211
|
+
/**
|
|
212
|
+
* Produces the ordered list of non-empty settlement blocks for the Settlement
|
|
213
|
+
* section, dropping any source whose normalized text is contained within
|
|
214
|
+
* another source's — keeping the superset. Containment (not just equality) is
|
|
215
|
+
* required because some venues (e.g. predict) store the same rules text on both
|
|
216
|
+
* the event and its markets, with the market copy adding only a trailing
|
|
217
|
+
* "Created At: ..." line, so the two are a prefix relationship, not identical.
|
|
218
|
+
*/
|
|
219
|
+
const dedupeSettlementSources = (sources) => {
|
|
220
|
+
const order = [
|
|
221
|
+
"eventDescription",
|
|
222
|
+
"marketDescription",
|
|
223
|
+
"primaryRules"
|
|
224
|
+
];
|
|
225
|
+
const result = [];
|
|
226
|
+
for (const key of order) {
|
|
227
|
+
const value = sources[key];
|
|
228
|
+
if (typeof value !== "string") continue;
|
|
229
|
+
const trimmed = value.trim();
|
|
230
|
+
if (!trimmed) continue;
|
|
231
|
+
const fingerprint = normalizeSettlementForCompare(trimmed);
|
|
232
|
+
if (!fingerprint) continue;
|
|
233
|
+
if (result.some((block) => block.fingerprint.includes(fingerprint))) continue;
|
|
234
|
+
for (let i = result.length - 1; i >= 0; i -= 1) if (fingerprint.includes(result[i].fingerprint)) result.splice(i, 1);
|
|
235
|
+
result.push({
|
|
236
|
+
key,
|
|
237
|
+
content: trimmed,
|
|
238
|
+
fingerprint
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
return result.map(({ key, content }) => ({
|
|
242
|
+
key,
|
|
243
|
+
content
|
|
244
|
+
}));
|
|
245
|
+
};
|
|
246
|
+
//#endregion
|
|
247
|
+
//#region src/trading/settlement/settlement-text-renderer.tsx
|
|
248
|
+
const inlineTokenRegex = new RegExp([
|
|
249
|
+
/\[([^\]\n]+)\]\(([^)\s]+)\)/.source,
|
|
250
|
+
/\*\*([^*\n]+?)\*\*/.source,
|
|
251
|
+
/`([^`\n]+?)`/.source,
|
|
252
|
+
/(https?:\/\/[^\s<>"'`]+)/.source
|
|
253
|
+
].join("|"), "g");
|
|
254
|
+
const trailingUrlPunctuationRegex = /[.,;:!?)\]]+$/;
|
|
255
|
+
const isLinkMatch = (match) => match[1] !== void 0 && match[2] !== void 0;
|
|
256
|
+
const linkClassName = "agg-settlement-text-link text-agg-primary underline hover:opacity-80";
|
|
257
|
+
const renderInlineSegment = (text, baseKey) => {
|
|
258
|
+
const nodes = [];
|
|
259
|
+
let lastIndex = 0;
|
|
260
|
+
let segmentIndex = 0;
|
|
261
|
+
inlineTokenRegex.lastIndex = 0;
|
|
262
|
+
let match;
|
|
263
|
+
while ((match = inlineTokenRegex.exec(text)) !== null) {
|
|
264
|
+
let matchEnd = match.index + match[0].length;
|
|
265
|
+
let bareUrl = match[5];
|
|
266
|
+
if (bareUrl !== void 0) {
|
|
267
|
+
const trailing = trailingUrlPunctuationRegex.exec(bareUrl);
|
|
268
|
+
if (trailing) {
|
|
269
|
+
const trimmed = bareUrl.slice(0, bareUrl.length - trailing[0].length);
|
|
270
|
+
if (trimmed.length > 8) {
|
|
271
|
+
bareUrl = trimmed;
|
|
272
|
+
matchEnd -= trailing[0].length;
|
|
273
|
+
inlineTokenRegex.lastIndex = matchEnd;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
if (match.index > lastIndex) nodes.push(/* @__PURE__ */ jsx(Fragment, { children: text.slice(lastIndex, match.index) }, `${baseKey}-text-${segmentIndex++}`));
|
|
278
|
+
if (isLinkMatch(match)) nodes.push(/* @__PURE__ */ jsx("a", {
|
|
279
|
+
href: match[2],
|
|
280
|
+
target: "_blank",
|
|
281
|
+
rel: "noopener noreferrer",
|
|
282
|
+
className: linkClassName,
|
|
283
|
+
children: match[1]
|
|
284
|
+
}, `${baseKey}-link-${segmentIndex++}`));
|
|
285
|
+
else if (match[3] !== void 0) nodes.push(/* @__PURE__ */ jsx("strong", {
|
|
286
|
+
className: "agg-settlement-text-bold font-agg-bold",
|
|
287
|
+
children: match[3]
|
|
288
|
+
}, `${baseKey}-bold-${segmentIndex++}`));
|
|
289
|
+
else if (match[4] !== void 0) nodes.push(/* @__PURE__ */ jsx("code", {
|
|
290
|
+
className: "agg-settlement-text-code rounded-agg-sm bg-agg-secondary-hover px-1 py-0.5 font-mono text-[0.875em]",
|
|
291
|
+
children: match[4]
|
|
292
|
+
}, `${baseKey}-code-${segmentIndex++}`));
|
|
293
|
+
else if (bareUrl !== void 0) nodes.push(/* @__PURE__ */ jsx("a", {
|
|
294
|
+
href: bareUrl,
|
|
295
|
+
target: "_blank",
|
|
296
|
+
rel: "noopener noreferrer",
|
|
297
|
+
className: linkClassName,
|
|
298
|
+
children: bareUrl
|
|
299
|
+
}, `${baseKey}-url-${segmentIndex++}`));
|
|
300
|
+
lastIndex = matchEnd;
|
|
301
|
+
}
|
|
302
|
+
if (lastIndex < text.length) nodes.push(/* @__PURE__ */ jsx(Fragment, { children: text.slice(lastIndex) }, `${baseKey}-text-${segmentIndex++}`));
|
|
303
|
+
return nodes;
|
|
304
|
+
};
|
|
305
|
+
const renderBlock = (block, blockIndex) => {
|
|
306
|
+
if (block.kind === "list") return /* @__PURE__ */ jsx("ul", {
|
|
307
|
+
className: "agg-settlement-text-list list-disc pl-5 text-agg-sm leading-agg-5 text-agg-foreground",
|
|
308
|
+
children: block.items.map((item, itemIndex) => /* @__PURE__ */ jsx("li", {
|
|
309
|
+
className: "agg-settlement-text-list-item",
|
|
310
|
+
children: renderInlineSegment(item, `block-${blockIndex}-item-${itemIndex}`)
|
|
311
|
+
}, `block-${blockIndex}-item-${itemIndex}`))
|
|
312
|
+
}, `block-${blockIndex}`);
|
|
313
|
+
return /* @__PURE__ */ jsx("p", {
|
|
314
|
+
className: "agg-settlement-text-paragraph text-agg-sm leading-agg-5 text-agg-foreground break-words [overflow-wrap:anywhere]",
|
|
315
|
+
children: block.lines.map((line, lineIndex) => /* @__PURE__ */ jsxs(Fragment, { children: [lineIndex > 0 ? /* @__PURE__ */ jsx("br", {}) : null, renderInlineSegment(line, `block-${blockIndex}-line-${lineIndex}`)] }, `block-${blockIndex}-line-${lineIndex}`))
|
|
316
|
+
}, `block-${blockIndex}`);
|
|
317
|
+
};
|
|
318
|
+
const SettlementTextRenderer = ({ content, className }) => {
|
|
319
|
+
const blocks = parseSettlementBlocks(content);
|
|
320
|
+
if (blocks.length === 0) return null;
|
|
321
|
+
return /* @__PURE__ */ jsx("div", {
|
|
322
|
+
className: cn("agg-settlement-text flex flex-col gap-2", className),
|
|
323
|
+
children: blocks.map((block, blockIndex) => renderBlock(block, blockIndex))
|
|
324
|
+
});
|
|
325
|
+
};
|
|
326
|
+
SettlementTextRenderer.displayName = "SettlementTextRenderer";
|
|
327
|
+
//#endregion
|
|
328
|
+
//#region src/trading/settlement/index.tsx
|
|
329
|
+
const SETTLEMENT_SECTION_ID = "agg-settlement-section";
|
|
330
|
+
const getSettlementDifferenceId = (sectionId, canonicalKey) => {
|
|
331
|
+
return `${sectionId}-difference-${canonicalKey}`;
|
|
332
|
+
};
|
|
333
|
+
const dateOnlyRegex = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
334
|
+
const isoTimestampWithTimezoneRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d{1,9})?)?(?:Z|[+-]\d{2}:?\d{2})$/i;
|
|
335
|
+
const normalizeDifferenceText = (value) => {
|
|
336
|
+
return value.trim().toLowerCase().replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "");
|
|
337
|
+
};
|
|
338
|
+
const resolveCanonicalDifferenceKey = (difference) => {
|
|
339
|
+
const normalizedType = normalizeDifferenceText(difference.type);
|
|
340
|
+
const combined = normalizeDifferenceText(`${difference.type} ${difference.title}`);
|
|
341
|
+
if (combined.includes("start_date") || combined.includes("open_date")) return "start_date";
|
|
342
|
+
if (combined.includes("end_date") || combined.includes("close_date") || combined.includes("closing_date") || combined.includes("expiration_date") || combined.includes("expiry_date")) return "end_date";
|
|
343
|
+
if (combined.includes("resolution_timing") || combined.includes("resolution_date") || combined.includes("resolution_deadline") || combined.includes("settlement_date") || combined.includes("settlement_deadline") || combined.includes("settlement_timing")) return "resolution_timing";
|
|
344
|
+
return normalizedType || "other";
|
|
345
|
+
};
|
|
346
|
+
const parseSettlementDateMs = (value) => {
|
|
347
|
+
const trimmed = value.trim();
|
|
348
|
+
const dateOnlyMatch = dateOnlyRegex.exec(trimmed);
|
|
349
|
+
if (dateOnlyMatch) {
|
|
350
|
+
const [, year, month, day] = dateOnlyMatch;
|
|
351
|
+
return Date.UTC(Number(year), Number(month) - 1, Number(day));
|
|
352
|
+
}
|
|
353
|
+
if (!isoTimestampWithTimezoneRegex.test(trimmed)) return null;
|
|
354
|
+
const ms = Date.parse(trimmed);
|
|
355
|
+
return Number.isNaN(ms) ? null : ms;
|
|
356
|
+
};
|
|
357
|
+
const isDateLikeDifference = (canonicalKey) => {
|
|
358
|
+
return canonicalKey === "resolution_timing" || canonicalKey === "start_date" || canonicalKey === "end_date";
|
|
359
|
+
};
|
|
360
|
+
/**
|
|
361
|
+
* A row every venue answers the same way is not a difference, whatever its
|
|
362
|
+
* type. Dates are compared as instants so "2026-03-31" and
|
|
363
|
+
* "2026-03-31T00:00:00Z" count as agreeing; everything else is compared as
|
|
364
|
+
* normalized text. Venues the aggregator produced no value for are ignored —
|
|
365
|
+
* the venues that did answer are what decides it.
|
|
366
|
+
*/
|
|
367
|
+
const hasEqualValuesAcrossVenues = (difference) => {
|
|
368
|
+
const values = Object.values(difference.perVenue);
|
|
369
|
+
if (values.length < 2) return false;
|
|
370
|
+
const timestamps = values.map(parseSettlementDateMs);
|
|
371
|
+
if (timestamps.every((timestamp) => timestamp !== null)) return new Set(timestamps).size === 1;
|
|
372
|
+
return new Set(values.map(normalizeSettlementForCompare)).size === 1;
|
|
373
|
+
};
|
|
374
|
+
const resolveDifferenceSeverity = (difference, canonicalKey) => {
|
|
375
|
+
const combined = normalizeDifferenceText(`${difference.type} ${difference.title} ${difference.summary ?? ""}`);
|
|
376
|
+
if (isDateLikeDifference(canonicalKey)) return "critical";
|
|
377
|
+
if (canonicalKey === "scope" || canonicalKey === "threshold" || canonicalKey === "edge_cases") return "critical";
|
|
378
|
+
if (combined.includes("conflict") || combined.includes("void") || combined.includes("cancel") || combined.includes("postpone") || combined.includes("recount") || combined.includes("overtime") || combined.includes("extra_time")) return "critical";
|
|
379
|
+
return "informational";
|
|
380
|
+
};
|
|
381
|
+
const mergePerVenueValues = (current, next) => {
|
|
382
|
+
return Object.entries(next).reduce((merged, [venue, value]) => {
|
|
383
|
+
if (merged[venue] === void 0) merged[venue] = value;
|
|
384
|
+
return merged;
|
|
385
|
+
}, { ...current });
|
|
386
|
+
};
|
|
387
|
+
const prepareSettlementDifferences = (differences) => {
|
|
388
|
+
const byCanonicalKey = /* @__PURE__ */ new Map();
|
|
389
|
+
for (const [originalIndex, rawDifference] of (differences ?? []).entries()) {
|
|
390
|
+
const title = rawDifference.title.trim();
|
|
391
|
+
const perVenue = Object.fromEntries(Object.entries(rawDifference.perVenue).map(([venue, value]) => [venue.trim(), value.trim()]).filter(([venue, value]) => venue.length > 0 && value.length > 0));
|
|
392
|
+
if (!title || Object.keys(perVenue).length === 0) continue;
|
|
393
|
+
const difference = {
|
|
394
|
+
...rawDifference,
|
|
395
|
+
title,
|
|
396
|
+
perVenue
|
|
397
|
+
};
|
|
398
|
+
const canonicalKey = resolveCanonicalDifferenceKey(difference);
|
|
399
|
+
if (hasEqualValuesAcrossVenues(difference)) continue;
|
|
400
|
+
const existing = byCanonicalKey.get(canonicalKey);
|
|
401
|
+
if (existing) {
|
|
402
|
+
byCanonicalKey.set(canonicalKey, {
|
|
403
|
+
...existing,
|
|
404
|
+
perVenue: mergePerVenueValues(existing.perVenue, difference.perVenue)
|
|
405
|
+
});
|
|
406
|
+
continue;
|
|
407
|
+
}
|
|
408
|
+
byCanonicalKey.set(canonicalKey, {
|
|
409
|
+
...difference,
|
|
410
|
+
canonicalKey,
|
|
411
|
+
severity: resolveDifferenceSeverity(difference, canonicalKey),
|
|
412
|
+
originalIndex
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
return Array.from(byCanonicalKey.values()).filter((difference) => !hasEqualValuesAcrossVenues(difference)).sort((left, right) => {
|
|
416
|
+
const severityDelta = Number(right.severity === "critical") - Number(left.severity === "critical");
|
|
417
|
+
if (severityDelta !== 0) return severityDelta;
|
|
418
|
+
return left.originalIndex - right.originalIndex;
|
|
419
|
+
});
|
|
420
|
+
};
|
|
421
|
+
const formatVenueFallbackLabel = (venue) => {
|
|
422
|
+
return venue.split(/[-_\s]+/).filter(Boolean).map((part) => `${part.slice(0, 1).toUpperCase()}${part.slice(1)}`).join(" ");
|
|
423
|
+
};
|
|
424
|
+
const resolveSettlementVenueLabel = (venue, labels) => {
|
|
425
|
+
return labels.venues[venue] ?? formatVenueFallbackLabel(venue);
|
|
426
|
+
};
|
|
427
|
+
/**
|
|
428
|
+
* Every row lists every venue in the cluster, not just the ones the aggregator
|
|
429
|
+
* had a value for — a venue missing from a row reads as "this venue is not
|
|
430
|
+
* involved" rather than "we don't know", which is what it actually means.
|
|
431
|
+
*/
|
|
432
|
+
const resolveDifferenceVenueKeys = (difference, settlementVenues) => {
|
|
433
|
+
const allVenues = [...settlementVenues ?? [], ...Object.keys(difference.perVenue)];
|
|
434
|
+
return Array.from(new Set(allVenues.filter((venue) => venue.trim().length > 0)));
|
|
435
|
+
};
|
|
436
|
+
const resolveDifferenceIconClassName = (canonicalKey) => {
|
|
437
|
+
if (canonicalKey.includes("source") || canonicalKey.includes("url")) return "fi-rr-world";
|
|
438
|
+
if (canonicalKey === "resolution_timing" || canonicalKey.includes("timing")) return "fi-rr-clock";
|
|
439
|
+
if (canonicalKey === "start_date" || canonicalKey.includes("start")) return "fi-rr-calendar-clock";
|
|
440
|
+
if (canonicalKey === "end_date" || canonicalKey.includes("end")) return "fi-rr-calendar-clock";
|
|
441
|
+
if (canonicalKey.includes("cancel") || canonicalKey.includes("void") || canonicalKey.includes("postpone")) return "fi-rr-ban";
|
|
442
|
+
if (canonicalKey === "edge_cases" || canonicalKey.includes("edge")) return "fi-rr-triangle-warning";
|
|
443
|
+
if (canonicalKey === "scope") return "fi-rr-layers";
|
|
444
|
+
if (canonicalKey === "threshold") return "fi-rr-tachometer-alt-fastest";
|
|
445
|
+
if (canonicalKey.includes("wording")) return "fi-rr-document";
|
|
446
|
+
return "fi-rr-info";
|
|
447
|
+
};
|
|
448
|
+
const buildSettlementVenueRules = ({ marketBlock, primaryRulesBlock, settlementVenues, settlementVenueRules }) => {
|
|
449
|
+
if (settlementVenueRules) {
|
|
450
|
+
const rulesByVenue = /* @__PURE__ */ new Map();
|
|
451
|
+
for (const rule of settlementVenueRules) {
|
|
452
|
+
const venue = rule.venue.trim();
|
|
453
|
+
const content = rule.content.trim();
|
|
454
|
+
if (!venue || !content) continue;
|
|
455
|
+
const venueRules = rulesByVenue.get(venue) ?? [];
|
|
456
|
+
if (!venueRules.includes(content)) venueRules.push(content);
|
|
457
|
+
rulesByVenue.set(venue, venueRules);
|
|
458
|
+
}
|
|
459
|
+
if (rulesByVenue.size > 0) for (const venue of settlementVenues ?? []) {
|
|
460
|
+
const trimmedVenue = venue.trim();
|
|
461
|
+
if (trimmedVenue && !rulesByVenue.has(trimmedVenue)) rulesByVenue.set(trimmedVenue, []);
|
|
462
|
+
}
|
|
463
|
+
return Array.from(rulesByVenue, ([venue, contents]) => ({
|
|
464
|
+
venue,
|
|
465
|
+
content: contents.join("\n\n")
|
|
466
|
+
}));
|
|
467
|
+
}
|
|
468
|
+
const content = [marketBlock?.content, primaryRulesBlock?.content].filter((value) => typeof value === "string" && value.trim().length > 0).join("\n\n");
|
|
469
|
+
const venue = settlementVenues?.find((candidate) => candidate.trim().length > 0)?.trim();
|
|
470
|
+
return content && venue ? [{
|
|
471
|
+
venue,
|
|
472
|
+
content
|
|
473
|
+
}] : [];
|
|
474
|
+
};
|
|
475
|
+
/**
|
|
476
|
+
* The card header already shows the question. When the event description is
|
|
477
|
+
* nothing but the question restated, rendering it again just repeats the line
|
|
478
|
+
* back at the reader.
|
|
479
|
+
*/
|
|
480
|
+
const repeatsQuestion = (content, question) => {
|
|
481
|
+
const normalizedQuestion = normalizeSettlementForCompare(question ?? "");
|
|
482
|
+
if (!normalizedQuestion) return false;
|
|
483
|
+
return normalizeSettlementForCompare(content) === normalizedQuestion;
|
|
484
|
+
};
|
|
485
|
+
const isDuplicatedByVenueRules = (content, venueRules) => {
|
|
486
|
+
const normalizedContent = normalizeSettlementForCompare(content);
|
|
487
|
+
if (!normalizedContent) return false;
|
|
488
|
+
return venueRules.some((rule) => {
|
|
489
|
+
return normalizeSettlementForCompare(rule.content).includes(normalizedContent);
|
|
490
|
+
});
|
|
491
|
+
};
|
|
492
|
+
const SettlementVenueRules = ({ rules, labels }) => {
|
|
493
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
494
|
+
className: "agg-settlement-venue-rules flex w-full flex-col items-start gap-4",
|
|
495
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
496
|
+
className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground",
|
|
497
|
+
children: labels.trading.settlementFullRulesTitle
|
|
498
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
499
|
+
className: "flex w-full flex-col items-start gap-4",
|
|
500
|
+
children: rules.map((rule) => {
|
|
501
|
+
const venueLabel = resolveSettlementVenueLabel(rule.venue, labels);
|
|
502
|
+
return /* @__PURE__ */ jsxs("details", {
|
|
503
|
+
className: "w-full",
|
|
504
|
+
children: [/* @__PURE__ */ jsxs("summary", {
|
|
505
|
+
className: "group/agg-settlement-rule flex w-fit cursor-pointer list-none items-center gap-2 text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground transition-colors marker:hidden",
|
|
506
|
+
children: [
|
|
507
|
+
/* @__PURE__ */ jsx(VenueLogo, {
|
|
508
|
+
venue: rule.venue,
|
|
509
|
+
size: "small",
|
|
510
|
+
className: "size-4",
|
|
511
|
+
ariaLabel: venueLabel
|
|
512
|
+
}),
|
|
513
|
+
/* @__PURE__ */ jsx("span", {
|
|
514
|
+
className: "text-agg-foreground group-hover/agg-settlement-rule:text-agg-muted-foreground transition-colors",
|
|
515
|
+
children: venueLabel
|
|
516
|
+
}),
|
|
517
|
+
/* @__PURE__ */ jsx("i", {
|
|
518
|
+
className: cn("fi fi-rr-angle-small-down text-[14px]!", "group-open/agg-settlement-rule:rotate-180", "size-3.5! shrink-0 text-agg-foreground group-hover/agg-settlement-rule:text-agg-muted-foreground transition-[colors,transform]"),
|
|
519
|
+
style: { fontSize: 14 },
|
|
520
|
+
"aria-hidden": "true"
|
|
521
|
+
})
|
|
522
|
+
]
|
|
523
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
524
|
+
className: "mt-3 pl-6",
|
|
525
|
+
children: rule.content ? /* @__PURE__ */ jsx(SettlementTextRenderer, { content: rule.content }) : /* @__PURE__ */ jsx("p", {
|
|
526
|
+
className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground",
|
|
527
|
+
children: labels.trading.settlementValueUnavailable
|
|
528
|
+
})
|
|
529
|
+
})]
|
|
530
|
+
}, rule.venue);
|
|
531
|
+
})
|
|
532
|
+
})]
|
|
533
|
+
});
|
|
534
|
+
};
|
|
535
|
+
const Settlement = ({ className, id = SETTLEMENT_SECTION_ID, sectionLabel = defaultSettlementSectionLabel, question, eventDescription, marketDescription, primaryRules, settlementDiff, settlementVenues, settlementVenueRules, isLoading = false }) => {
|
|
536
|
+
const labels = useLabels();
|
|
537
|
+
const blocks = useMemo(() => dedupeSettlementSources({
|
|
538
|
+
eventDescription,
|
|
539
|
+
marketDescription,
|
|
540
|
+
primaryRules
|
|
541
|
+
}), [
|
|
542
|
+
eventDescription,
|
|
543
|
+
marketDescription,
|
|
544
|
+
primaryRules
|
|
545
|
+
]);
|
|
546
|
+
const isSingleVenueCluster = settlementVenues !== void 0 && settlementVenues.length < 2;
|
|
547
|
+
const settlementDifferences = useMemo(() => isSingleVenueCluster ? [] : prepareSettlementDifferences(settlementDiff?.differences), [isSingleVenueCluster, settlementDiff?.differences]);
|
|
548
|
+
const eventBlock = blocks.find((block) => block.key === "eventDescription") ?? null;
|
|
549
|
+
const marketBlock = blocks.find((block) => block.key === "marketDescription") ?? null;
|
|
550
|
+
const primaryRulesBlock = blocks.find((block) => block.key === "primaryRules") ?? null;
|
|
551
|
+
const venueRuleBlocks = useMemo(() => buildSettlementVenueRules({
|
|
552
|
+
marketBlock,
|
|
553
|
+
primaryRulesBlock,
|
|
554
|
+
settlementVenues,
|
|
555
|
+
settlementVenueRules
|
|
556
|
+
}), [
|
|
557
|
+
marketBlock,
|
|
558
|
+
primaryRulesBlock,
|
|
559
|
+
settlementVenues,
|
|
560
|
+
settlementVenueRules
|
|
561
|
+
]);
|
|
562
|
+
const hasSettlementDifferences = settlementDifferences.length > 0;
|
|
563
|
+
const hasVenueSettlementRules = venueRuleBlocks.length > 0;
|
|
564
|
+
const standaloneEventBlock = eventBlock && !isDuplicatedByVenueRules(eventBlock.content, venueRuleBlocks) && !repeatsQuestion(eventBlock.content, question) ? eventBlock : null;
|
|
565
|
+
const standaloneMarketBlock = hasVenueSettlementRules ? null : marketBlock;
|
|
566
|
+
const standalonePrimaryRulesBlock = hasVenueSettlementRules ? null : primaryRulesBlock;
|
|
567
|
+
const hasStandaloneSettlementText = hasVenueSettlementRules ? standaloneEventBlock !== null : blocks.length > 0;
|
|
568
|
+
const hasSettlementContent = hasSettlementDifferences || hasVenueSettlementRules || hasStandaloneSettlementText;
|
|
569
|
+
const defaultOpenDifferenceKey = settlementDifferences[0]?.canonicalKey ?? null;
|
|
570
|
+
const [openDifferenceKeys, setOpenDifferenceKeys] = useState(() => defaultOpenDifferenceKey ? [defaultOpenDifferenceKey] : []);
|
|
571
|
+
useEffect(() => {
|
|
572
|
+
setOpenDifferenceKeys(defaultOpenDifferenceKey ? [defaultOpenDifferenceKey] : []);
|
|
573
|
+
}, [defaultOpenDifferenceKey]);
|
|
574
|
+
const handleToggleDifference = (canonicalKey) => {
|
|
575
|
+
setOpenDifferenceKeys((currentKeys) => currentKeys.includes(canonicalKey) ? currentKeys.filter((currentKey) => currentKey !== canonicalKey) : [...currentKeys, canonicalKey]);
|
|
576
|
+
};
|
|
577
|
+
if (isLoading) return /* @__PURE__ */ jsx(Skeleton, {
|
|
578
|
+
ariaLabel: labels.trading.settlementLoading,
|
|
579
|
+
className,
|
|
580
|
+
view: skeletonViews.settlement
|
|
581
|
+
});
|
|
582
|
+
if (!hasSettlementContent) return null;
|
|
583
|
+
const resolvedSectionLabel = sectionLabel === defaultSettlementSectionLabel ? labels.trading.settlementSection : sectionLabel;
|
|
584
|
+
return /* @__PURE__ */ jsxs(Card, {
|
|
585
|
+
id,
|
|
586
|
+
className: cn("group/agg-settlement-card", "flex w-full flex-col items-start gap-4 rounded-agg-xl border border-agg-separator bg-agg-secondary p-5 shadow-none hover:shadow-none sm:gap-5", className),
|
|
587
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
588
|
+
className: "agg-settlement-header flex w-full flex-col items-start gap-1 text-agg-muted-foreground sm:flex-row sm:items-center sm:justify-between sm:gap-4",
|
|
589
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
590
|
+
className: "shrink-0 text-agg-xs font-agg-bold leading-agg-4 uppercase",
|
|
591
|
+
children: resolvedSectionLabel
|
|
592
|
+
}), question ? /* @__PURE__ */ jsx("p", {
|
|
593
|
+
className: "agg-settlement-question min-w-0 text-agg-sm font-agg-normal leading-agg-5 sm:max-w-[314px] sm:truncate",
|
|
594
|
+
children: question
|
|
595
|
+
}) : null]
|
|
596
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
597
|
+
className: "agg-settlement-sections flex w-full flex-col items-start gap-5",
|
|
598
|
+
children: [
|
|
599
|
+
hasStandaloneSettlementText ? /* @__PURE__ */ jsxs("div", {
|
|
600
|
+
className: "w-full",
|
|
601
|
+
children: [standaloneEventBlock || standaloneMarketBlock ? /* @__PURE__ */ jsxs("div", {
|
|
602
|
+
className: "agg-settlement-section agg-settlement-section-description",
|
|
603
|
+
"data-source": "description",
|
|
604
|
+
children: [
|
|
605
|
+
standaloneEventBlock ? /* @__PURE__ */ jsx("div", {
|
|
606
|
+
"data-source": "eventDescription",
|
|
607
|
+
children: /* @__PURE__ */ jsx(SettlementTextRenderer, { content: standaloneEventBlock.content })
|
|
608
|
+
}) : null,
|
|
609
|
+
standaloneEventBlock && standaloneMarketBlock ? /* @__PURE__ */ jsx("hr", { className: "agg-settlement-divider my-4 border-0 border-t border-agg-separator" }) : null,
|
|
610
|
+
standaloneMarketBlock ? /* @__PURE__ */ jsx("div", {
|
|
611
|
+
"data-source": "marketDescription",
|
|
612
|
+
children: /* @__PURE__ */ jsx(SettlementTextRenderer, { content: standaloneMarketBlock.content })
|
|
613
|
+
}) : null
|
|
614
|
+
]
|
|
615
|
+
}) : null, standalonePrimaryRulesBlock ? /* @__PURE__ */ jsxs("div", {
|
|
616
|
+
className: "agg-settlement-section agg-settlement-section-primaryRules",
|
|
617
|
+
"data-source": "primaryRules",
|
|
618
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
619
|
+
className: "agg-settlement-section-label text-agg-xs font-agg-bold leading-agg-4 uppercase text-agg-muted-foreground mb-2",
|
|
620
|
+
children: labels.trading.settlementPrimaryRulesLabel
|
|
621
|
+
}), /* @__PURE__ */ jsx(SettlementTextRenderer, { content: standalonePrimaryRulesBlock.content })]
|
|
622
|
+
}) : null]
|
|
623
|
+
}) : null,
|
|
624
|
+
hasSettlementDifferences ? /* @__PURE__ */ jsxs("div", {
|
|
625
|
+
className: "agg-settlement-differences flex w-full flex-col items-start gap-5",
|
|
626
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
627
|
+
className: "flex items-center gap-2",
|
|
628
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
629
|
+
className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground",
|
|
630
|
+
children: labels.trading.settlementDifferencesTitle
|
|
631
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
632
|
+
className: "flex size-4 shrink-0 items-center justify-center rounded-agg-full bg-agg-primary text-[10px] font-agg-bold leading-[14px] text-agg-on-primary",
|
|
633
|
+
children: settlementDifferences.length
|
|
634
|
+
})]
|
|
635
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
636
|
+
className: "flex w-full flex-col items-start gap-5",
|
|
637
|
+
children: settlementDifferences.map((difference) => {
|
|
638
|
+
const venueKeys = resolveDifferenceVenueKeys(difference, settlementVenues);
|
|
639
|
+
const isExpanded = openDifferenceKeys.includes(difference.canonicalKey) && venueKeys.length > 0;
|
|
640
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
641
|
+
id: getSettlementDifferenceId(id, difference.canonicalKey),
|
|
642
|
+
className: "agg-settlement-difference flex w-full flex-col items-start gap-2 rounded-agg-lg",
|
|
643
|
+
children: [/* @__PURE__ */ jsxs("button", {
|
|
644
|
+
type: "button",
|
|
645
|
+
className: "flex w-full cursor-pointer items-center gap-2 text-left group/agg-settlement-difference",
|
|
646
|
+
"aria-expanded": isExpanded,
|
|
647
|
+
onClick: () => handleToggleDifference(difference.canonicalKey),
|
|
648
|
+
children: [
|
|
649
|
+
/* @__PURE__ */ jsx("i", {
|
|
650
|
+
className: cn("fi", resolveDifferenceIconClassName(difference.canonicalKey), "inline-flex size-4! shrink-0 items-center justify-center text-[16px] leading-none text-agg-muted-foreground"),
|
|
651
|
+
"aria-hidden": "true"
|
|
652
|
+
}),
|
|
653
|
+
/* @__PURE__ */ jsx("p", {
|
|
654
|
+
className: "min-w-0 text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground group-hover/agg-settlement-difference:text-agg-muted-foreground transition-colors break-words [overflow-wrap:anywhere]",
|
|
655
|
+
children: difference.title
|
|
656
|
+
}),
|
|
657
|
+
/* @__PURE__ */ jsx("i", {
|
|
658
|
+
className: cn("fi fi-rr-angle-small-down text-[14px]!", isExpanded && "rotate-180", "size-3.5! shrink-0 text-agg-foreground group-hover/agg-settlement-difference:text-agg-muted-foreground transition-[colors,transform]"),
|
|
659
|
+
style: { fontSize: 14 },
|
|
660
|
+
"aria-hidden": "true"
|
|
661
|
+
})
|
|
662
|
+
]
|
|
663
|
+
}), isExpanded ? /* @__PURE__ */ jsx("dl", {
|
|
664
|
+
className: "flex w-full flex-col items-start gap-1 px-6",
|
|
665
|
+
children: venueKeys.map((venue) => {
|
|
666
|
+
const venueValue = difference.perVenue[venue] ?? labels.trading.settlementValueUnavailable;
|
|
667
|
+
const venueLabel = resolveSettlementVenueLabel(venue, labels);
|
|
668
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
669
|
+
className: "flex w-full items-start gap-2",
|
|
670
|
+
children: [
|
|
671
|
+
/* @__PURE__ */ jsx(VenueLogo, {
|
|
672
|
+
venue,
|
|
673
|
+
size: "small",
|
|
674
|
+
className: "mt-0.5 size-4",
|
|
675
|
+
ariaLabel: venueLabel
|
|
676
|
+
}),
|
|
677
|
+
/* @__PURE__ */ jsx("dt", {
|
|
678
|
+
className: "w-[88px] shrink-0 text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground",
|
|
679
|
+
children: venueLabel
|
|
680
|
+
}),
|
|
681
|
+
/* @__PURE__ */ jsx("dd", {
|
|
682
|
+
className: "min-w-0 flex-1 text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground break-words [overflow-wrap:anywhere]",
|
|
683
|
+
children: venueValue
|
|
684
|
+
})
|
|
685
|
+
]
|
|
686
|
+
}, venue);
|
|
687
|
+
})
|
|
688
|
+
}) : null]
|
|
689
|
+
}, difference.canonicalKey);
|
|
690
|
+
})
|
|
691
|
+
})]
|
|
692
|
+
}) : null,
|
|
693
|
+
hasVenueSettlementRules ? /* @__PURE__ */ jsxs(Fragment$1, { children: [hasSettlementDifferences || hasStandaloneSettlementText ? /* @__PURE__ */ jsx("div", { className: "h-px w-full bg-agg-separator" }) : null, /* @__PURE__ */ jsx(SettlementVenueRules, {
|
|
694
|
+
rules: venueRuleBlocks,
|
|
695
|
+
labels
|
|
696
|
+
})] }) : null
|
|
697
|
+
]
|
|
698
|
+
})]
|
|
699
|
+
});
|
|
700
|
+
};
|
|
701
|
+
Settlement.displayName = "Settlement";
|
|
702
|
+
//#endregion
|
|
703
|
+
//#region src/events/shared/event-trading-state.utils.ts
|
|
704
|
+
const formatTradingStateDate = (value) => {
|
|
705
|
+
if (!dayjs(value).isValid()) return value;
|
|
706
|
+
return dayjs(value).format("MMM D, YYYY");
|
|
707
|
+
};
|
|
708
|
+
const resolveTradingStateTimestampLabel = (labels, state) => {
|
|
709
|
+
if (state.kind === "resolved" && state.resolvesAt) return labels.eventMarketPage.resolvedAt(formatTradingStateDate(state.resolvesAt));
|
|
710
|
+
if (state.kind === "closed" && state.endsAt) return labels.eventMarketPage.closedAt(formatTradingStateDate(state.endsAt));
|
|
711
|
+
if (state.kind === "unopened" && state.startsAt) return labels.eventMarketPage.opensAt(formatTradingStateDate(state.startsAt));
|
|
712
|
+
return null;
|
|
713
|
+
};
|
|
714
|
+
const resolveTradingStatePresentation = (labels, state) => {
|
|
715
|
+
const timestampLabel = resolveTradingStateTimestampLabel(labels, state);
|
|
716
|
+
const resolvedOutcomeLabel = resolveResolvedOutcomeLabel({
|
|
717
|
+
market: state.market ?? null,
|
|
718
|
+
outcome: state.winningOutcome
|
|
719
|
+
});
|
|
720
|
+
const winningOutcomeLabel = resolvedOutcomeLabel ? labels.eventMarketPage.winningOutcome(resolvedOutcomeLabel) : null;
|
|
721
|
+
if (state.kind === "resolved") return {
|
|
722
|
+
badgeLabel: labels.eventMarketPage.tradingResolvedBadge,
|
|
723
|
+
title: labels.eventMarketPage.tradingResolvedTitle,
|
|
724
|
+
description: labels.eventMarketPage.tradingResolvedDescription,
|
|
725
|
+
iconName: "check-circle",
|
|
726
|
+
timestampLabel,
|
|
727
|
+
winningOutcomeLabel
|
|
728
|
+
};
|
|
729
|
+
if (state.kind === "paused") return {
|
|
730
|
+
badgeLabel: labels.eventMarketPage.tradingPausedBadge,
|
|
731
|
+
title: labels.eventMarketPage.tradingPausedTitle,
|
|
732
|
+
description: labels.eventMarketPage.tradingPausedDescription,
|
|
733
|
+
iconName: "warning-filled",
|
|
734
|
+
timestampLabel,
|
|
735
|
+
winningOutcomeLabel
|
|
736
|
+
};
|
|
737
|
+
if (state.kind === "unopened") return {
|
|
738
|
+
badgeLabel: labels.eventMarketPage.tradingUnopenedBadge,
|
|
739
|
+
title: labels.eventMarketPage.tradingUnopenedTitle,
|
|
740
|
+
description: labels.eventMarketPage.tradingUnopenedDescription,
|
|
741
|
+
iconName: "info",
|
|
742
|
+
timestampLabel,
|
|
743
|
+
winningOutcomeLabel
|
|
744
|
+
};
|
|
745
|
+
if (state.kind === "closed") return {
|
|
746
|
+
badgeLabel: labels.eventMarketPage.tradingClosedBadge,
|
|
747
|
+
title: labels.eventMarketPage.tradingClosedTitle,
|
|
748
|
+
description: labels.eventMarketPage.tradingClosedDescription,
|
|
749
|
+
iconName: "warning-filled",
|
|
750
|
+
timestampLabel,
|
|
751
|
+
winningOutcomeLabel
|
|
752
|
+
};
|
|
753
|
+
return {
|
|
754
|
+
badgeLabel: labels.eventMarketPage.tradingUnavailableBadge,
|
|
755
|
+
title: labels.eventMarketPage.tradingUnavailableTitle,
|
|
756
|
+
description: labels.eventMarketPage.tradingUnavailableDescription,
|
|
757
|
+
iconName: "info",
|
|
758
|
+
timestampLabel,
|
|
759
|
+
winningOutcomeLabel
|
|
760
|
+
};
|
|
761
|
+
};
|
|
762
|
+
const resolveTradingStateBadgeClassName = (kind) => {
|
|
763
|
+
if (kind === "resolved") return "border-agg-success/20 bg-agg-success/10 text-agg-success";
|
|
764
|
+
if (kind === "unopened") return "border-agg-primary/15 bg-agg-primary/5 text-agg-primary";
|
|
765
|
+
if (kind === "paused") return "border-agg-warning/20 bg-agg-warning/10 text-agg-warning";
|
|
766
|
+
if (kind === "closed") return "border-agg-warning/20 bg-agg-warning/10 text-agg-warning";
|
|
767
|
+
return "border-agg-separator bg-agg-secondary text-agg-muted-foreground";
|
|
768
|
+
};
|
|
769
|
+
const ORDER_ELIGIBILITY_LABEL_MAP = {
|
|
770
|
+
no_event_selected: (labels) => labels.trading.orderDisabledNoEvent,
|
|
771
|
+
no_market_selected: (labels) => labels.trading.orderDisabledNoMarket,
|
|
772
|
+
no_outcome_selected: (labels) => labels.trading.orderDisabledNoOutcome,
|
|
773
|
+
event_resolved: (labels) => labels.trading.orderDisabledEventResolved,
|
|
774
|
+
event_closed: (labels) => labels.trading.orderDisabledEventClosed,
|
|
775
|
+
event_paused: (labels) => labels.trading.orderDisabledEventPaused,
|
|
776
|
+
event_unopened: (labels) => labels.trading.orderDisabledEventUnopened,
|
|
777
|
+
event_unavailable: (labels) => labels.trading.orderDisabledEventUnavailable,
|
|
778
|
+
market_resolved: (labels) => labels.trading.orderDisabledMarketResolved,
|
|
779
|
+
market_closed: (labels) => labels.trading.orderDisabledMarketClosed,
|
|
780
|
+
market_paused: (labels) => labels.trading.orderDisabledMarketPaused,
|
|
781
|
+
market_unopened: (labels) => labels.trading.orderDisabledMarketUnopened,
|
|
782
|
+
market_unavailable: (labels) => labels.trading.orderDisabledMarketUnavailable
|
|
783
|
+
};
|
|
784
|
+
const resolveOrderEligibilityMessage = (labels, reason) => {
|
|
785
|
+
if (reason === "eligible") return null;
|
|
786
|
+
return ORDER_ELIGIBILITY_LABEL_MAP[reason](labels);
|
|
787
|
+
};
|
|
788
|
+
//#endregion
|
|
789
|
+
export { useEventTradingContext$1 as C, resolveUnifiedOrderBookEntries as S, getTradingValueLabel as _, Settlement as a, formatProbabilityCents as b, resolveDifferenceIconClassName as c, getTradingAveragePriceLabel as d, getTradingBalanceLabel as f, getTradingSlippageLabel as g, getTradingSharesLabel as h, SETTLEMENT_SECTION_ID as i, defaultSettlementSectionLabel as l, getTradingPriceLabel as m, resolveTradingStateBadgeClassName as n, getSettlementDifferenceId as o, getTradingDateLabel as p, resolveTradingStatePresentation as r, prepareSettlementDifferences as s, resolveOrderEligibilityMessage as t, defaultTradingDisclaimer as u, getTradingVenueLabel as v, resolveOrderBookRows as x, getDisplayOutcomePrice as y };
|