@agg-build/ui 4.26.1 → 4.27.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/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-Bx4YBWDl.mjs +7850 -0
- package/dist/pages-CwGkaBjY.js +7959 -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,921 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const require_primitives = require("./primitives-CqxNeV7H.js");
|
|
3
|
+
let react = require("react");
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
let _agg_build_hooks = require("@agg-build/hooks");
|
|
6
|
+
let dayjs = require("dayjs");
|
|
7
|
+
dayjs = require_primitives.__toESM(dayjs);
|
|
8
|
+
let _agg_build_sdk = require("@agg-build/sdk");
|
|
9
|
+
//#region src/events/orderbook/orderbook.utils.ts
|
|
10
|
+
const isOrderBookLevel = (v) => (0, _agg_build_sdk.hasShape)(v, {
|
|
11
|
+
price: (p) => typeof p === "number" && p >= 0 && p <= 1,
|
|
12
|
+
size: (s) => typeof s === "number" && s >= 0
|
|
13
|
+
});
|
|
14
|
+
const isOrderBookRow = (v) => (0, _agg_build_sdk.hasShape)(v, {
|
|
15
|
+
id: (x) => typeof x === "string",
|
|
16
|
+
venue: (x) => typeof x === "string" && x.length > 0,
|
|
17
|
+
price: (p) => typeof p === "number" && p >= 0 && p <= 1,
|
|
18
|
+
size: (s) => typeof s === "number" && s >= 0,
|
|
19
|
+
total: (t) => typeof t === "number" && t >= 0,
|
|
20
|
+
tone: (x) => x === "positive" || x === "negative"
|
|
21
|
+
});
|
|
22
|
+
const formatProbabilityCents = (value, formatPrice) => {
|
|
23
|
+
if (value == null) return "-";
|
|
24
|
+
if (formatPrice) return formatPrice(value);
|
|
25
|
+
return `${(value * 100).toFixed(1).replace(/\.0$/, "")}\u00A2`;
|
|
26
|
+
};
|
|
27
|
+
const resolveOrderBookRows = ({ data, side }) => {
|
|
28
|
+
if (!data?.length) return [];
|
|
29
|
+
const tone = side === "asks" ? "negative" : "positive";
|
|
30
|
+
const sortedRows = [...data.flatMap((result) => {
|
|
31
|
+
return (result.orderbook[side] ?? []).flatMap((level, index) => {
|
|
32
|
+
const parsedLevel = (0, _agg_build_sdk.safeParse)(level, isOrderBookLevel);
|
|
33
|
+
if (!parsedLevel.success) return [];
|
|
34
|
+
const parsedRow = (0, _agg_build_sdk.safeParse)({
|
|
35
|
+
id: `${result.market.id}-${side}-${index}-${parsedLevel.data.price}`,
|
|
36
|
+
venue: result.market.venue,
|
|
37
|
+
price: parsedLevel.data.price,
|
|
38
|
+
size: parsedLevel.data.size,
|
|
39
|
+
total: parsedLevel.data.price * parsedLevel.data.size,
|
|
40
|
+
tone
|
|
41
|
+
}, isOrderBookRow);
|
|
42
|
+
if (!parsedRow.success) return [];
|
|
43
|
+
return [parsedRow.data];
|
|
44
|
+
});
|
|
45
|
+
})].sort((left, right) => {
|
|
46
|
+
if (side === "asks") return left.price - right.price;
|
|
47
|
+
return right.price - left.price;
|
|
48
|
+
});
|
|
49
|
+
const maxTotal = sortedRows.reduce((currentMax, row) => Math.max(currentMax, row.total), 0) || 1;
|
|
50
|
+
return sortedRows.map((row) => ({
|
|
51
|
+
...row,
|
|
52
|
+
barScale: row.total / maxTotal
|
|
53
|
+
}));
|
|
54
|
+
};
|
|
55
|
+
const resolveUnifiedOrderBookEntries = ({ askRows, bidRows, midPrice, spread }) => {
|
|
56
|
+
const asksDescending = [...askRows].reverse();
|
|
57
|
+
const askCumulativeDepths = new Array(asksDescending.length);
|
|
58
|
+
let cumulative = 0;
|
|
59
|
+
for (let i = asksDescending.length - 1; i >= 0; i--) {
|
|
60
|
+
cumulative += asksDescending[i].total;
|
|
61
|
+
askCumulativeDepths[i] = cumulative;
|
|
62
|
+
}
|
|
63
|
+
const bidCumulativeDepths = new Array(bidRows.length);
|
|
64
|
+
cumulative = 0;
|
|
65
|
+
for (let i = 0; i < bidRows.length; i++) {
|
|
66
|
+
cumulative += bidRows[i].total;
|
|
67
|
+
bidCumulativeDepths[i] = cumulative;
|
|
68
|
+
}
|
|
69
|
+
const maxAskCumulative = askCumulativeDepths.length > 0 ? askCumulativeDepths[0] : 0;
|
|
70
|
+
const maxBidCumulative = bidCumulativeDepths.length > 0 ? bidCumulativeDepths[bidCumulativeDepths.length - 1] : 0;
|
|
71
|
+
const askMax = maxAskCumulative || 1;
|
|
72
|
+
const bidMax = maxBidCumulative || 1;
|
|
73
|
+
const askEntries = asksDescending.map((row, index) => ({
|
|
74
|
+
kind: "ask",
|
|
75
|
+
row,
|
|
76
|
+
cumulativeDepth: askCumulativeDepths[index],
|
|
77
|
+
unifiedBarScale: askCumulativeDepths[index] / askMax
|
|
78
|
+
}));
|
|
79
|
+
const bidEntries = bidRows.map((row, index) => ({
|
|
80
|
+
kind: "bid",
|
|
81
|
+
row,
|
|
82
|
+
cumulativeDepth: bidCumulativeDepths[index],
|
|
83
|
+
unifiedBarScale: bidCumulativeDepths[index] / bidMax
|
|
84
|
+
}));
|
|
85
|
+
const spreadEntry = {
|
|
86
|
+
kind: "spread",
|
|
87
|
+
midPrice,
|
|
88
|
+
spread
|
|
89
|
+
};
|
|
90
|
+
return [
|
|
91
|
+
...askEntries,
|
|
92
|
+
spreadEntry,
|
|
93
|
+
...bidEntries
|
|
94
|
+
];
|
|
95
|
+
};
|
|
96
|
+
//#endregion
|
|
97
|
+
//#region src/events/shared/display-reference-price.ts
|
|
98
|
+
const getDisplayReferencePrice = ({ bestMidpoint, fallbackPrice }) => {
|
|
99
|
+
return bestMidpoint ?? fallbackPrice ?? void 0;
|
|
100
|
+
};
|
|
101
|
+
//#endregion
|
|
102
|
+
//#region src/events/shared/select-outcome-price.ts
|
|
103
|
+
const selectOutcomePrice = ({ outcomeId, selection, bestPrices, bestMidpointsByOutcomeId, livePrices, fallbackPrice }) => {
|
|
104
|
+
if (!outcomeId) return void 0;
|
|
105
|
+
if (selection === "buy") {
|
|
106
|
+
const bestAsk = bestPrices?.get(outcomeId)?.bestAsk;
|
|
107
|
+
if (bestAsk != null) return bestAsk;
|
|
108
|
+
} else if (selection === "sell") {
|
|
109
|
+
const bestBid = bestPrices?.get(outcomeId)?.bestBid;
|
|
110
|
+
if (bestBid != null) return bestBid;
|
|
111
|
+
}
|
|
112
|
+
const livePrice = livePrices?.get(outcomeId);
|
|
113
|
+
if (livePrice != null) return livePrice;
|
|
114
|
+
const midpointPrice = bestMidpointsByOutcomeId?.get(outcomeId);
|
|
115
|
+
if (midpointPrice != null) return midpointPrice;
|
|
116
|
+
return fallbackPrice ?? void 0;
|
|
117
|
+
};
|
|
118
|
+
//#endregion
|
|
119
|
+
//#region src/events/shared/display-outcome-price.ts
|
|
120
|
+
const normalizeOutcomeLabel = (label) => {
|
|
121
|
+
return typeof label === "string" ? label.trim().toLowerCase() : "";
|
|
122
|
+
};
|
|
123
|
+
const getDisplayOutcomePrice = ({ outcomeId, outcomeLabel, selection, bestPrices, bestMidpoint, bestMidpointsByOutcomeId, livePrices, fallbackPrice }) => {
|
|
124
|
+
if (selection && outcomeId) return selectOutcomePrice({
|
|
125
|
+
outcomeId,
|
|
126
|
+
selection,
|
|
127
|
+
bestPrices,
|
|
128
|
+
bestMidpointsByOutcomeId,
|
|
129
|
+
livePrices,
|
|
130
|
+
fallbackPrice
|
|
131
|
+
});
|
|
132
|
+
const livePrice = outcomeId ? livePrices?.get(outcomeId) : void 0;
|
|
133
|
+
if (livePrice != null) return livePrice;
|
|
134
|
+
const resolvedFallbackPrice = (outcomeId ? bestMidpointsByOutcomeId?.get(outcomeId) : void 0) ?? fallbackPrice ?? void 0;
|
|
135
|
+
if (normalizeOutcomeLabel(outcomeLabel) === "yes") return getDisplayReferencePrice({
|
|
136
|
+
bestMidpoint,
|
|
137
|
+
fallbackPrice: resolvedFallbackPrice
|
|
138
|
+
});
|
|
139
|
+
return resolvedFallbackPrice;
|
|
140
|
+
};
|
|
141
|
+
//#endregion
|
|
142
|
+
//#region src/trading/utils.ts
|
|
143
|
+
const defaultLabels = (0, _agg_build_hooks.resolveAggUiLabels)("en-US");
|
|
144
|
+
const defaultSettlementSectionLabel = defaultLabels.trading.settlementSection;
|
|
145
|
+
const defaultTradingDisclaimer = defaultLabels.trading.disclaimer;
|
|
146
|
+
const getTradingDateLabel = (value) => {
|
|
147
|
+
const parsedValue = (0, dayjs.default)(value);
|
|
148
|
+
if (!parsedValue.isValid()) return typeof value === "string" ? value : "";
|
|
149
|
+
return parsedValue.format("MMM D, YYYY");
|
|
150
|
+
};
|
|
151
|
+
const getTradingVenueLabel = (venue, label) => {
|
|
152
|
+
if (label) return label;
|
|
153
|
+
if (!venue) return "Unknown";
|
|
154
|
+
return defaultLabels.venues[venue] ?? venue;
|
|
155
|
+
};
|
|
156
|
+
const getTradingValueLabel = ({ amount, minimumFractionDigits = 0, maximumFractionDigits = 2 }) => {
|
|
157
|
+
return amount.toLocaleString("en-US", {
|
|
158
|
+
style: "currency",
|
|
159
|
+
currency: "USD",
|
|
160
|
+
minimumFractionDigits,
|
|
161
|
+
maximumFractionDigits
|
|
162
|
+
});
|
|
163
|
+
};
|
|
164
|
+
const getTradingPriceLabel = (value) => {
|
|
165
|
+
return `${Math.round(value * 100)}¢`;
|
|
166
|
+
};
|
|
167
|
+
const getTradingAveragePriceLabel = (value) => {
|
|
168
|
+
return defaultLabels.trading.averagePrice(value);
|
|
169
|
+
};
|
|
170
|
+
const getTradingBalanceLabel = (value) => {
|
|
171
|
+
return defaultLabels.trading.balance(require_primitives.formatUsd(value));
|
|
172
|
+
};
|
|
173
|
+
const getTradingSharesLabel = (value) => {
|
|
174
|
+
return defaultLabels.trading.shares(value);
|
|
175
|
+
};
|
|
176
|
+
const getTradingSlippageLabel = (value) => {
|
|
177
|
+
return defaultLabels.trading.slippage(value);
|
|
178
|
+
};
|
|
179
|
+
//#endregion
|
|
180
|
+
//#region src/trading/settlement/settlement-text.utils.ts
|
|
181
|
+
const stripHtmlFragments = (text) => {
|
|
182
|
+
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");
|
|
183
|
+
};
|
|
184
|
+
const isListLine = (line) => /^\s*[-*]\s+/.test(line);
|
|
185
|
+
const stripBullet = (line) => line.replace(/^\s*[-*]\s+/, "").trim();
|
|
186
|
+
const parseSettlementBlocks = (input) => {
|
|
187
|
+
const normalized = stripHtmlFragments(input).trim();
|
|
188
|
+
if (!normalized) return [];
|
|
189
|
+
const paragraphs = normalized.split(/\n{2,}/);
|
|
190
|
+
const blocks = [];
|
|
191
|
+
for (const rawParagraph of paragraphs) {
|
|
192
|
+
const lines = rawParagraph.split("\n").map((line) => line.replace(/\s+$/, "")).filter((line) => line.trim().length > 0);
|
|
193
|
+
if (lines.length === 0) continue;
|
|
194
|
+
if (lines.every(isListLine)) {
|
|
195
|
+
blocks.push({
|
|
196
|
+
kind: "list",
|
|
197
|
+
items: lines.map(stripBullet)
|
|
198
|
+
});
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
blocks.push({
|
|
202
|
+
kind: "paragraph",
|
|
203
|
+
lines: lines.map((line) => line.trim())
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
return blocks;
|
|
207
|
+
};
|
|
208
|
+
/** Lower-cased, whitespace-collapsed form used for dedup comparisons. */
|
|
209
|
+
const normalizeSettlementForCompare = (input) => {
|
|
210
|
+
return stripHtmlFragments(input).replace(/\s+/g, " ").trim().toLowerCase();
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* Produces the ordered list of non-empty settlement blocks for the Settlement
|
|
214
|
+
* section, dropping any source whose normalized text is contained within
|
|
215
|
+
* another source's — keeping the superset. Containment (not just equality) is
|
|
216
|
+
* required because some venues (e.g. predict) store the same rules text on both
|
|
217
|
+
* the event and its markets, with the market copy adding only a trailing
|
|
218
|
+
* "Created At: ..." line, so the two are a prefix relationship, not identical.
|
|
219
|
+
*/
|
|
220
|
+
const dedupeSettlementSources = (sources) => {
|
|
221
|
+
const order = [
|
|
222
|
+
"eventDescription",
|
|
223
|
+
"marketDescription",
|
|
224
|
+
"primaryRules"
|
|
225
|
+
];
|
|
226
|
+
const result = [];
|
|
227
|
+
for (const key of order) {
|
|
228
|
+
const value = sources[key];
|
|
229
|
+
if (typeof value !== "string") continue;
|
|
230
|
+
const trimmed = value.trim();
|
|
231
|
+
if (!trimmed) continue;
|
|
232
|
+
const fingerprint = normalizeSettlementForCompare(trimmed);
|
|
233
|
+
if (!fingerprint) continue;
|
|
234
|
+
if (result.some((block) => block.fingerprint.includes(fingerprint))) continue;
|
|
235
|
+
for (let i = result.length - 1; i >= 0; i -= 1) if (fingerprint.includes(result[i].fingerprint)) result.splice(i, 1);
|
|
236
|
+
result.push({
|
|
237
|
+
key,
|
|
238
|
+
content: trimmed,
|
|
239
|
+
fingerprint
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
return result.map(({ key, content }) => ({
|
|
243
|
+
key,
|
|
244
|
+
content
|
|
245
|
+
}));
|
|
246
|
+
};
|
|
247
|
+
//#endregion
|
|
248
|
+
//#region src/trading/settlement/settlement-text-renderer.tsx
|
|
249
|
+
const inlineTokenRegex = new RegExp([
|
|
250
|
+
/\[([^\]\n]+)\]\(([^)\s]+)\)/.source,
|
|
251
|
+
/\*\*([^*\n]+?)\*\*/.source,
|
|
252
|
+
/`([^`\n]+?)`/.source,
|
|
253
|
+
/(https?:\/\/[^\s<>"'`]+)/.source
|
|
254
|
+
].join("|"), "g");
|
|
255
|
+
const trailingUrlPunctuationRegex = /[.,;:!?)\]]+$/;
|
|
256
|
+
const isLinkMatch = (match) => match[1] !== void 0 && match[2] !== void 0;
|
|
257
|
+
const linkClassName = "agg-settlement-text-link text-agg-primary underline hover:opacity-80";
|
|
258
|
+
const renderInlineSegment = (text, baseKey) => {
|
|
259
|
+
const nodes = [];
|
|
260
|
+
let lastIndex = 0;
|
|
261
|
+
let segmentIndex = 0;
|
|
262
|
+
inlineTokenRegex.lastIndex = 0;
|
|
263
|
+
let match;
|
|
264
|
+
while ((match = inlineTokenRegex.exec(text)) !== null) {
|
|
265
|
+
let matchEnd = match.index + match[0].length;
|
|
266
|
+
let bareUrl = match[5];
|
|
267
|
+
if (bareUrl !== void 0) {
|
|
268
|
+
const trailing = trailingUrlPunctuationRegex.exec(bareUrl);
|
|
269
|
+
if (trailing) {
|
|
270
|
+
const trimmed = bareUrl.slice(0, bareUrl.length - trailing[0].length);
|
|
271
|
+
if (trimmed.length > 8) {
|
|
272
|
+
bareUrl = trimmed;
|
|
273
|
+
matchEnd -= trailing[0].length;
|
|
274
|
+
inlineTokenRegex.lastIndex = matchEnd;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
if (match.index > lastIndex) nodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Fragment, { children: text.slice(lastIndex, match.index) }, `${baseKey}-text-${segmentIndex++}`));
|
|
279
|
+
if (isLinkMatch(match)) nodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
|
|
280
|
+
href: match[2],
|
|
281
|
+
target: "_blank",
|
|
282
|
+
rel: "noopener noreferrer",
|
|
283
|
+
className: linkClassName,
|
|
284
|
+
children: match[1]
|
|
285
|
+
}, `${baseKey}-link-${segmentIndex++}`));
|
|
286
|
+
else if (match[3] !== void 0) nodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", {
|
|
287
|
+
className: "agg-settlement-text-bold font-agg-bold",
|
|
288
|
+
children: match[3]
|
|
289
|
+
}, `${baseKey}-bold-${segmentIndex++}`));
|
|
290
|
+
else if (match[4] !== void 0) nodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
291
|
+
className: "agg-settlement-text-code rounded-agg-sm bg-agg-secondary-hover px-1 py-0.5 font-mono text-[0.875em]",
|
|
292
|
+
children: match[4]
|
|
293
|
+
}, `${baseKey}-code-${segmentIndex++}`));
|
|
294
|
+
else if (bareUrl !== void 0) nodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
|
|
295
|
+
href: bareUrl,
|
|
296
|
+
target: "_blank",
|
|
297
|
+
rel: "noopener noreferrer",
|
|
298
|
+
className: linkClassName,
|
|
299
|
+
children: bareUrl
|
|
300
|
+
}, `${baseKey}-url-${segmentIndex++}`));
|
|
301
|
+
lastIndex = matchEnd;
|
|
302
|
+
}
|
|
303
|
+
if (lastIndex < text.length) nodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Fragment, { children: text.slice(lastIndex) }, `${baseKey}-text-${segmentIndex++}`));
|
|
304
|
+
return nodes;
|
|
305
|
+
};
|
|
306
|
+
const renderBlock = (block, blockIndex) => {
|
|
307
|
+
if (block.kind === "list") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
308
|
+
className: "agg-settlement-text-list list-disc pl-5 text-agg-sm leading-agg-5 text-agg-foreground",
|
|
309
|
+
children: block.items.map((item, itemIndex) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
|
|
310
|
+
className: "agg-settlement-text-list-item",
|
|
311
|
+
children: renderInlineSegment(item, `block-${blockIndex}-item-${itemIndex}`)
|
|
312
|
+
}, `block-${blockIndex}-item-${itemIndex}`))
|
|
313
|
+
}, `block-${blockIndex}`);
|
|
314
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
315
|
+
className: "agg-settlement-text-paragraph text-agg-sm leading-agg-5 text-agg-foreground break-words [overflow-wrap:anywhere]",
|
|
316
|
+
children: block.lines.map((line, lineIndex) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react.Fragment, { children: [lineIndex > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("br", {}) : null, renderInlineSegment(line, `block-${blockIndex}-line-${lineIndex}`)] }, `block-${blockIndex}-line-${lineIndex}`))
|
|
317
|
+
}, `block-${blockIndex}`);
|
|
318
|
+
};
|
|
319
|
+
const SettlementTextRenderer = ({ content, className }) => {
|
|
320
|
+
const blocks = parseSettlementBlocks(content);
|
|
321
|
+
if (blocks.length === 0) return null;
|
|
322
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
323
|
+
className: require_primitives.cn("agg-settlement-text flex flex-col gap-2", className),
|
|
324
|
+
children: blocks.map((block, blockIndex) => renderBlock(block, blockIndex))
|
|
325
|
+
});
|
|
326
|
+
};
|
|
327
|
+
SettlementTextRenderer.displayName = "SettlementTextRenderer";
|
|
328
|
+
//#endregion
|
|
329
|
+
//#region src/trading/settlement/index.tsx
|
|
330
|
+
const SETTLEMENT_SECTION_ID = "agg-settlement-section";
|
|
331
|
+
const getSettlementDifferenceId = (sectionId, canonicalKey) => {
|
|
332
|
+
return `${sectionId}-difference-${canonicalKey}`;
|
|
333
|
+
};
|
|
334
|
+
const dateOnlyRegex = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
335
|
+
const isoTimestampWithTimezoneRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d{1,9})?)?(?:Z|[+-]\d{2}:?\d{2})$/i;
|
|
336
|
+
const normalizeDifferenceText = (value) => {
|
|
337
|
+
return value.trim().toLowerCase().replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "");
|
|
338
|
+
};
|
|
339
|
+
const resolveCanonicalDifferenceKey = (difference) => {
|
|
340
|
+
const normalizedType = normalizeDifferenceText(difference.type);
|
|
341
|
+
const combined = normalizeDifferenceText(`${difference.type} ${difference.title}`);
|
|
342
|
+
if (combined.includes("start_date") || combined.includes("open_date")) return "start_date";
|
|
343
|
+
if (combined.includes("end_date") || combined.includes("close_date") || combined.includes("closing_date") || combined.includes("expiration_date") || combined.includes("expiry_date")) return "end_date";
|
|
344
|
+
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";
|
|
345
|
+
return normalizedType || "other";
|
|
346
|
+
};
|
|
347
|
+
const parseSettlementDateMs = (value) => {
|
|
348
|
+
const trimmed = value.trim();
|
|
349
|
+
const dateOnlyMatch = dateOnlyRegex.exec(trimmed);
|
|
350
|
+
if (dateOnlyMatch) {
|
|
351
|
+
const [, year, month, day] = dateOnlyMatch;
|
|
352
|
+
return Date.UTC(Number(year), Number(month) - 1, Number(day));
|
|
353
|
+
}
|
|
354
|
+
if (!isoTimestampWithTimezoneRegex.test(trimmed)) return null;
|
|
355
|
+
const ms = Date.parse(trimmed);
|
|
356
|
+
return Number.isNaN(ms) ? null : ms;
|
|
357
|
+
};
|
|
358
|
+
const isDateLikeDifference = (canonicalKey) => {
|
|
359
|
+
return canonicalKey === "resolution_timing" || canonicalKey === "start_date" || canonicalKey === "end_date";
|
|
360
|
+
};
|
|
361
|
+
/**
|
|
362
|
+
* A row every venue answers the same way is not a difference, whatever its
|
|
363
|
+
* type. Dates are compared as instants so "2026-03-31" and
|
|
364
|
+
* "2026-03-31T00:00:00Z" count as agreeing; everything else is compared as
|
|
365
|
+
* normalized text. Venues the aggregator produced no value for are ignored —
|
|
366
|
+
* the venues that did answer are what decides it.
|
|
367
|
+
*/
|
|
368
|
+
const hasEqualValuesAcrossVenues = (difference) => {
|
|
369
|
+
const values = Object.values(difference.perVenue);
|
|
370
|
+
if (values.length < 2) return false;
|
|
371
|
+
const timestamps = values.map(parseSettlementDateMs);
|
|
372
|
+
if (timestamps.every((timestamp) => timestamp !== null)) return new Set(timestamps).size === 1;
|
|
373
|
+
return new Set(values.map(normalizeSettlementForCompare)).size === 1;
|
|
374
|
+
};
|
|
375
|
+
const resolveDifferenceSeverity = (difference, canonicalKey) => {
|
|
376
|
+
const combined = normalizeDifferenceText(`${difference.type} ${difference.title} ${difference.summary ?? ""}`);
|
|
377
|
+
if (isDateLikeDifference(canonicalKey)) return "critical";
|
|
378
|
+
if (canonicalKey === "scope" || canonicalKey === "threshold" || canonicalKey === "edge_cases") return "critical";
|
|
379
|
+
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";
|
|
380
|
+
return "informational";
|
|
381
|
+
};
|
|
382
|
+
const mergePerVenueValues = (current, next) => {
|
|
383
|
+
return Object.entries(next).reduce((merged, [venue, value]) => {
|
|
384
|
+
if (merged[venue] === void 0) merged[venue] = value;
|
|
385
|
+
return merged;
|
|
386
|
+
}, { ...current });
|
|
387
|
+
};
|
|
388
|
+
const prepareSettlementDifferences = (differences) => {
|
|
389
|
+
const byCanonicalKey = /* @__PURE__ */ new Map();
|
|
390
|
+
for (const [originalIndex, rawDifference] of (differences ?? []).entries()) {
|
|
391
|
+
const title = rawDifference.title.trim();
|
|
392
|
+
const perVenue = Object.fromEntries(Object.entries(rawDifference.perVenue).map(([venue, value]) => [venue.trim(), value.trim()]).filter(([venue, value]) => venue.length > 0 && value.length > 0));
|
|
393
|
+
if (!title || Object.keys(perVenue).length === 0) continue;
|
|
394
|
+
const difference = {
|
|
395
|
+
...rawDifference,
|
|
396
|
+
title,
|
|
397
|
+
perVenue
|
|
398
|
+
};
|
|
399
|
+
const canonicalKey = resolveCanonicalDifferenceKey(difference);
|
|
400
|
+
if (hasEqualValuesAcrossVenues(difference)) continue;
|
|
401
|
+
const existing = byCanonicalKey.get(canonicalKey);
|
|
402
|
+
if (existing) {
|
|
403
|
+
byCanonicalKey.set(canonicalKey, {
|
|
404
|
+
...existing,
|
|
405
|
+
perVenue: mergePerVenueValues(existing.perVenue, difference.perVenue)
|
|
406
|
+
});
|
|
407
|
+
continue;
|
|
408
|
+
}
|
|
409
|
+
byCanonicalKey.set(canonicalKey, {
|
|
410
|
+
...difference,
|
|
411
|
+
canonicalKey,
|
|
412
|
+
severity: resolveDifferenceSeverity(difference, canonicalKey),
|
|
413
|
+
originalIndex
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
return Array.from(byCanonicalKey.values()).filter((difference) => !hasEqualValuesAcrossVenues(difference)).sort((left, right) => {
|
|
417
|
+
const severityDelta = Number(right.severity === "critical") - Number(left.severity === "critical");
|
|
418
|
+
if (severityDelta !== 0) return severityDelta;
|
|
419
|
+
return left.originalIndex - right.originalIndex;
|
|
420
|
+
});
|
|
421
|
+
};
|
|
422
|
+
const formatVenueFallbackLabel = (venue) => {
|
|
423
|
+
return venue.split(/[-_\s]+/).filter(Boolean).map((part) => `${part.slice(0, 1).toUpperCase()}${part.slice(1)}`).join(" ");
|
|
424
|
+
};
|
|
425
|
+
const resolveSettlementVenueLabel = (venue, labels) => {
|
|
426
|
+
return labels.venues[venue] ?? formatVenueFallbackLabel(venue);
|
|
427
|
+
};
|
|
428
|
+
/**
|
|
429
|
+
* Every row lists every venue in the cluster, not just the ones the aggregator
|
|
430
|
+
* had a value for — a venue missing from a row reads as "this venue is not
|
|
431
|
+
* involved" rather than "we don't know", which is what it actually means.
|
|
432
|
+
*/
|
|
433
|
+
const resolveDifferenceVenueKeys = (difference, settlementVenues) => {
|
|
434
|
+
const allVenues = [...settlementVenues ?? [], ...Object.keys(difference.perVenue)];
|
|
435
|
+
return Array.from(new Set(allVenues.filter((venue) => venue.trim().length > 0)));
|
|
436
|
+
};
|
|
437
|
+
const resolveDifferenceIconClassName = (canonicalKey) => {
|
|
438
|
+
if (canonicalKey.includes("source") || canonicalKey.includes("url")) return "fi-rr-world";
|
|
439
|
+
if (canonicalKey === "resolution_timing" || canonicalKey.includes("timing")) return "fi-rr-clock";
|
|
440
|
+
if (canonicalKey === "start_date" || canonicalKey.includes("start")) return "fi-rr-calendar-clock";
|
|
441
|
+
if (canonicalKey === "end_date" || canonicalKey.includes("end")) return "fi-rr-calendar-clock";
|
|
442
|
+
if (canonicalKey.includes("cancel") || canonicalKey.includes("void") || canonicalKey.includes("postpone")) return "fi-rr-ban";
|
|
443
|
+
if (canonicalKey === "edge_cases" || canonicalKey.includes("edge")) return "fi-rr-triangle-warning";
|
|
444
|
+
if (canonicalKey === "scope") return "fi-rr-layers";
|
|
445
|
+
if (canonicalKey === "threshold") return "fi-rr-tachometer-alt-fastest";
|
|
446
|
+
if (canonicalKey.includes("wording")) return "fi-rr-document";
|
|
447
|
+
return "fi-rr-info";
|
|
448
|
+
};
|
|
449
|
+
const buildSettlementVenueRules = ({ marketBlock, primaryRulesBlock, settlementVenues, settlementVenueRules }) => {
|
|
450
|
+
if (settlementVenueRules) {
|
|
451
|
+
const rulesByVenue = /* @__PURE__ */ new Map();
|
|
452
|
+
for (const rule of settlementVenueRules) {
|
|
453
|
+
const venue = rule.venue.trim();
|
|
454
|
+
const content = rule.content.trim();
|
|
455
|
+
if (!venue || !content) continue;
|
|
456
|
+
const venueRules = rulesByVenue.get(venue) ?? [];
|
|
457
|
+
if (!venueRules.includes(content)) venueRules.push(content);
|
|
458
|
+
rulesByVenue.set(venue, venueRules);
|
|
459
|
+
}
|
|
460
|
+
if (rulesByVenue.size > 0) for (const venue of settlementVenues ?? []) {
|
|
461
|
+
const trimmedVenue = venue.trim();
|
|
462
|
+
if (trimmedVenue && !rulesByVenue.has(trimmedVenue)) rulesByVenue.set(trimmedVenue, []);
|
|
463
|
+
}
|
|
464
|
+
return Array.from(rulesByVenue, ([venue, contents]) => ({
|
|
465
|
+
venue,
|
|
466
|
+
content: contents.join("\n\n")
|
|
467
|
+
}));
|
|
468
|
+
}
|
|
469
|
+
const content = [marketBlock?.content, primaryRulesBlock?.content].filter((value) => typeof value === "string" && value.trim().length > 0).join("\n\n");
|
|
470
|
+
const venue = settlementVenues?.find((candidate) => candidate.trim().length > 0)?.trim();
|
|
471
|
+
return content && venue ? [{
|
|
472
|
+
venue,
|
|
473
|
+
content
|
|
474
|
+
}] : [];
|
|
475
|
+
};
|
|
476
|
+
/**
|
|
477
|
+
* The card header already shows the question. When the event description is
|
|
478
|
+
* nothing but the question restated, rendering it again just repeats the line
|
|
479
|
+
* back at the reader.
|
|
480
|
+
*/
|
|
481
|
+
const repeatsQuestion = (content, question) => {
|
|
482
|
+
const normalizedQuestion = normalizeSettlementForCompare(question ?? "");
|
|
483
|
+
if (!normalizedQuestion) return false;
|
|
484
|
+
return normalizeSettlementForCompare(content) === normalizedQuestion;
|
|
485
|
+
};
|
|
486
|
+
const isDuplicatedByVenueRules = (content, venueRules) => {
|
|
487
|
+
const normalizedContent = normalizeSettlementForCompare(content);
|
|
488
|
+
if (!normalizedContent) return false;
|
|
489
|
+
return venueRules.some((rule) => {
|
|
490
|
+
return normalizeSettlementForCompare(rule.content).includes(normalizedContent);
|
|
491
|
+
});
|
|
492
|
+
};
|
|
493
|
+
const SettlementVenueRules = ({ rules, labels }) => {
|
|
494
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
495
|
+
className: "agg-settlement-venue-rules flex w-full flex-col items-start gap-4",
|
|
496
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
497
|
+
className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground",
|
|
498
|
+
children: labels.trading.settlementFullRulesTitle
|
|
499
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
500
|
+
className: "flex w-full flex-col items-start gap-4",
|
|
501
|
+
children: rules.map((rule) => {
|
|
502
|
+
const venueLabel = resolveSettlementVenueLabel(rule.venue, labels);
|
|
503
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("details", {
|
|
504
|
+
className: "w-full",
|
|
505
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("summary", {
|
|
506
|
+
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",
|
|
507
|
+
children: [
|
|
508
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_primitives.VenueLogo, {
|
|
509
|
+
venue: rule.venue,
|
|
510
|
+
size: "small",
|
|
511
|
+
className: "size-4",
|
|
512
|
+
ariaLabel: venueLabel
|
|
513
|
+
}),
|
|
514
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
515
|
+
className: "text-agg-foreground group-hover/agg-settlement-rule:text-agg-muted-foreground transition-colors",
|
|
516
|
+
children: venueLabel
|
|
517
|
+
}),
|
|
518
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("i", {
|
|
519
|
+
className: require_primitives.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]"),
|
|
520
|
+
style: { fontSize: 14 },
|
|
521
|
+
"aria-hidden": "true"
|
|
522
|
+
})
|
|
523
|
+
]
|
|
524
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
525
|
+
className: "mt-3 pl-6",
|
|
526
|
+
children: rule.content ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SettlementTextRenderer, { content: rule.content }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
527
|
+
className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground",
|
|
528
|
+
children: labels.trading.settlementValueUnavailable
|
|
529
|
+
})
|
|
530
|
+
})]
|
|
531
|
+
}, rule.venue);
|
|
532
|
+
})
|
|
533
|
+
})]
|
|
534
|
+
});
|
|
535
|
+
};
|
|
536
|
+
const Settlement = ({ className, id = SETTLEMENT_SECTION_ID, sectionLabel = defaultSettlementSectionLabel, question, eventDescription, marketDescription, primaryRules, settlementDiff, settlementVenues, settlementVenueRules, isLoading = false }) => {
|
|
537
|
+
const labels = (0, _agg_build_hooks.useLabels)();
|
|
538
|
+
const blocks = (0, react.useMemo)(() => dedupeSettlementSources({
|
|
539
|
+
eventDescription,
|
|
540
|
+
marketDescription,
|
|
541
|
+
primaryRules
|
|
542
|
+
}), [
|
|
543
|
+
eventDescription,
|
|
544
|
+
marketDescription,
|
|
545
|
+
primaryRules
|
|
546
|
+
]);
|
|
547
|
+
const isSingleVenueCluster = settlementVenues !== void 0 && settlementVenues.length < 2;
|
|
548
|
+
const settlementDifferences = (0, react.useMemo)(() => isSingleVenueCluster ? [] : prepareSettlementDifferences(settlementDiff?.differences), [isSingleVenueCluster, settlementDiff?.differences]);
|
|
549
|
+
const eventBlock = blocks.find((block) => block.key === "eventDescription") ?? null;
|
|
550
|
+
const marketBlock = blocks.find((block) => block.key === "marketDescription") ?? null;
|
|
551
|
+
const primaryRulesBlock = blocks.find((block) => block.key === "primaryRules") ?? null;
|
|
552
|
+
const venueRuleBlocks = (0, react.useMemo)(() => buildSettlementVenueRules({
|
|
553
|
+
marketBlock,
|
|
554
|
+
primaryRulesBlock,
|
|
555
|
+
settlementVenues,
|
|
556
|
+
settlementVenueRules
|
|
557
|
+
}), [
|
|
558
|
+
marketBlock,
|
|
559
|
+
primaryRulesBlock,
|
|
560
|
+
settlementVenues,
|
|
561
|
+
settlementVenueRules
|
|
562
|
+
]);
|
|
563
|
+
const hasSettlementDifferences = settlementDifferences.length > 0;
|
|
564
|
+
const hasVenueSettlementRules = venueRuleBlocks.length > 0;
|
|
565
|
+
const standaloneEventBlock = eventBlock && !isDuplicatedByVenueRules(eventBlock.content, venueRuleBlocks) && !repeatsQuestion(eventBlock.content, question) ? eventBlock : null;
|
|
566
|
+
const standaloneMarketBlock = hasVenueSettlementRules ? null : marketBlock;
|
|
567
|
+
const standalonePrimaryRulesBlock = hasVenueSettlementRules ? null : primaryRulesBlock;
|
|
568
|
+
const hasStandaloneSettlementText = hasVenueSettlementRules ? standaloneEventBlock !== null : blocks.length > 0;
|
|
569
|
+
const hasSettlementContent = hasSettlementDifferences || hasVenueSettlementRules || hasStandaloneSettlementText;
|
|
570
|
+
const defaultOpenDifferenceKey = settlementDifferences[0]?.canonicalKey ?? null;
|
|
571
|
+
const [openDifferenceKeys, setOpenDifferenceKeys] = (0, react.useState)(() => defaultOpenDifferenceKey ? [defaultOpenDifferenceKey] : []);
|
|
572
|
+
(0, react.useEffect)(() => {
|
|
573
|
+
setOpenDifferenceKeys(defaultOpenDifferenceKey ? [defaultOpenDifferenceKey] : []);
|
|
574
|
+
}, [defaultOpenDifferenceKey]);
|
|
575
|
+
const handleToggleDifference = (canonicalKey) => {
|
|
576
|
+
setOpenDifferenceKeys((currentKeys) => currentKeys.includes(canonicalKey) ? currentKeys.filter((currentKey) => currentKey !== canonicalKey) : [...currentKeys, canonicalKey]);
|
|
577
|
+
};
|
|
578
|
+
if (isLoading) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_primitives.Skeleton, {
|
|
579
|
+
ariaLabel: labels.trading.settlementLoading,
|
|
580
|
+
className,
|
|
581
|
+
view: require_primitives.skeletonViews.settlement
|
|
582
|
+
});
|
|
583
|
+
if (!hasSettlementContent) return null;
|
|
584
|
+
const resolvedSectionLabel = sectionLabel === defaultSettlementSectionLabel ? labels.trading.settlementSection : sectionLabel;
|
|
585
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_primitives.Card, {
|
|
586
|
+
id,
|
|
587
|
+
className: require_primitives.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),
|
|
588
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
589
|
+
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",
|
|
590
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
591
|
+
className: "shrink-0 text-agg-xs font-agg-bold leading-agg-4 uppercase",
|
|
592
|
+
children: resolvedSectionLabel
|
|
593
|
+
}), question ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
594
|
+
className: "agg-settlement-question min-w-0 text-agg-sm font-agg-normal leading-agg-5 sm:max-w-[314px] sm:truncate",
|
|
595
|
+
children: question
|
|
596
|
+
}) : null]
|
|
597
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
598
|
+
className: "agg-settlement-sections flex w-full flex-col items-start gap-5",
|
|
599
|
+
children: [
|
|
600
|
+
hasStandaloneSettlementText ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
601
|
+
className: "w-full",
|
|
602
|
+
children: [standaloneEventBlock || standaloneMarketBlock ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
603
|
+
className: "agg-settlement-section agg-settlement-section-description",
|
|
604
|
+
"data-source": "description",
|
|
605
|
+
children: [
|
|
606
|
+
standaloneEventBlock ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
607
|
+
"data-source": "eventDescription",
|
|
608
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SettlementTextRenderer, { content: standaloneEventBlock.content })
|
|
609
|
+
}) : null,
|
|
610
|
+
standaloneEventBlock && standaloneMarketBlock ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("hr", { className: "agg-settlement-divider my-4 border-0 border-t border-agg-separator" }) : null,
|
|
611
|
+
standaloneMarketBlock ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
612
|
+
"data-source": "marketDescription",
|
|
613
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SettlementTextRenderer, { content: standaloneMarketBlock.content })
|
|
614
|
+
}) : null
|
|
615
|
+
]
|
|
616
|
+
}) : null, standalonePrimaryRulesBlock ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
617
|
+
className: "agg-settlement-section agg-settlement-section-primaryRules",
|
|
618
|
+
"data-source": "primaryRules",
|
|
619
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
620
|
+
className: "agg-settlement-section-label text-agg-xs font-agg-bold leading-agg-4 uppercase text-agg-muted-foreground mb-2",
|
|
621
|
+
children: labels.trading.settlementPrimaryRulesLabel
|
|
622
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SettlementTextRenderer, { content: standalonePrimaryRulesBlock.content })]
|
|
623
|
+
}) : null]
|
|
624
|
+
}) : null,
|
|
625
|
+
hasSettlementDifferences ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
626
|
+
className: "agg-settlement-differences flex w-full flex-col items-start gap-5",
|
|
627
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
628
|
+
className: "flex items-center gap-2",
|
|
629
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
630
|
+
className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground",
|
|
631
|
+
children: labels.trading.settlementDifferencesTitle
|
|
632
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
633
|
+
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",
|
|
634
|
+
children: settlementDifferences.length
|
|
635
|
+
})]
|
|
636
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
637
|
+
className: "flex w-full flex-col items-start gap-5",
|
|
638
|
+
children: settlementDifferences.map((difference) => {
|
|
639
|
+
const venueKeys = resolveDifferenceVenueKeys(difference, settlementVenues);
|
|
640
|
+
const isExpanded = openDifferenceKeys.includes(difference.canonicalKey) && venueKeys.length > 0;
|
|
641
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
642
|
+
id: getSettlementDifferenceId(id, difference.canonicalKey),
|
|
643
|
+
className: "agg-settlement-difference flex w-full flex-col items-start gap-2 rounded-agg-lg",
|
|
644
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
645
|
+
type: "button",
|
|
646
|
+
className: "flex w-full cursor-pointer items-center gap-2 text-left group/agg-settlement-difference",
|
|
647
|
+
"aria-expanded": isExpanded,
|
|
648
|
+
onClick: () => handleToggleDifference(difference.canonicalKey),
|
|
649
|
+
children: [
|
|
650
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("i", {
|
|
651
|
+
className: require_primitives.cn("fi", resolveDifferenceIconClassName(difference.canonicalKey), "inline-flex size-4! shrink-0 items-center justify-center text-[16px] leading-none text-agg-muted-foreground"),
|
|
652
|
+
"aria-hidden": "true"
|
|
653
|
+
}),
|
|
654
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
655
|
+
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]",
|
|
656
|
+
children: difference.title
|
|
657
|
+
}),
|
|
658
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("i", {
|
|
659
|
+
className: require_primitives.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]"),
|
|
660
|
+
style: { fontSize: 14 },
|
|
661
|
+
"aria-hidden": "true"
|
|
662
|
+
})
|
|
663
|
+
]
|
|
664
|
+
}), isExpanded ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("dl", {
|
|
665
|
+
className: "flex w-full flex-col items-start gap-1 px-6",
|
|
666
|
+
children: venueKeys.map((venue) => {
|
|
667
|
+
const venueValue = difference.perVenue[venue] ?? labels.trading.settlementValueUnavailable;
|
|
668
|
+
const venueLabel = resolveSettlementVenueLabel(venue, labels);
|
|
669
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
670
|
+
className: "flex w-full items-start gap-2",
|
|
671
|
+
children: [
|
|
672
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_primitives.VenueLogo, {
|
|
673
|
+
venue,
|
|
674
|
+
size: "small",
|
|
675
|
+
className: "mt-0.5 size-4",
|
|
676
|
+
ariaLabel: venueLabel
|
|
677
|
+
}),
|
|
678
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("dt", {
|
|
679
|
+
className: "w-[88px] shrink-0 text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground",
|
|
680
|
+
children: venueLabel
|
|
681
|
+
}),
|
|
682
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("dd", {
|
|
683
|
+
className: "min-w-0 flex-1 text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground break-words [overflow-wrap:anywhere]",
|
|
684
|
+
children: venueValue
|
|
685
|
+
})
|
|
686
|
+
]
|
|
687
|
+
}, venue);
|
|
688
|
+
})
|
|
689
|
+
}) : null]
|
|
690
|
+
}, difference.canonicalKey);
|
|
691
|
+
})
|
|
692
|
+
})]
|
|
693
|
+
}) : null,
|
|
694
|
+
hasVenueSettlementRules ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [hasSettlementDifferences || hasStandaloneSettlementText ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "h-px w-full bg-agg-separator" }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SettlementVenueRules, {
|
|
695
|
+
rules: venueRuleBlocks,
|
|
696
|
+
labels
|
|
697
|
+
})] }) : null
|
|
698
|
+
]
|
|
699
|
+
})]
|
|
700
|
+
});
|
|
701
|
+
};
|
|
702
|
+
Settlement.displayName = "Settlement";
|
|
703
|
+
//#endregion
|
|
704
|
+
//#region src/events/shared/event-trading-state.utils.ts
|
|
705
|
+
const formatTradingStateDate = (value) => {
|
|
706
|
+
if (!(0, dayjs.default)(value).isValid()) return value;
|
|
707
|
+
return (0, dayjs.default)(value).format("MMM D, YYYY");
|
|
708
|
+
};
|
|
709
|
+
const resolveTradingStateTimestampLabel = (labels, state) => {
|
|
710
|
+
if (state.kind === "resolved" && state.resolvesAt) return labels.eventMarketPage.resolvedAt(formatTradingStateDate(state.resolvesAt));
|
|
711
|
+
if (state.kind === "closed" && state.endsAt) return labels.eventMarketPage.closedAt(formatTradingStateDate(state.endsAt));
|
|
712
|
+
if (state.kind === "unopened" && state.startsAt) return labels.eventMarketPage.opensAt(formatTradingStateDate(state.startsAt));
|
|
713
|
+
return null;
|
|
714
|
+
};
|
|
715
|
+
const resolveTradingStatePresentation = (labels, state) => {
|
|
716
|
+
const timestampLabel = resolveTradingStateTimestampLabel(labels, state);
|
|
717
|
+
const resolvedOutcomeLabel = require_primitives.resolveResolvedOutcomeLabel({
|
|
718
|
+
market: state.market ?? null,
|
|
719
|
+
outcome: state.winningOutcome
|
|
720
|
+
});
|
|
721
|
+
const winningOutcomeLabel = resolvedOutcomeLabel ? labels.eventMarketPage.winningOutcome(resolvedOutcomeLabel) : null;
|
|
722
|
+
if (state.kind === "resolved") return {
|
|
723
|
+
badgeLabel: labels.eventMarketPage.tradingResolvedBadge,
|
|
724
|
+
title: labels.eventMarketPage.tradingResolvedTitle,
|
|
725
|
+
description: labels.eventMarketPage.tradingResolvedDescription,
|
|
726
|
+
iconName: "check-circle",
|
|
727
|
+
timestampLabel,
|
|
728
|
+
winningOutcomeLabel
|
|
729
|
+
};
|
|
730
|
+
if (state.kind === "paused") return {
|
|
731
|
+
badgeLabel: labels.eventMarketPage.tradingPausedBadge,
|
|
732
|
+
title: labels.eventMarketPage.tradingPausedTitle,
|
|
733
|
+
description: labels.eventMarketPage.tradingPausedDescription,
|
|
734
|
+
iconName: "warning-filled",
|
|
735
|
+
timestampLabel,
|
|
736
|
+
winningOutcomeLabel
|
|
737
|
+
};
|
|
738
|
+
if (state.kind === "unopened") return {
|
|
739
|
+
badgeLabel: labels.eventMarketPage.tradingUnopenedBadge,
|
|
740
|
+
title: labels.eventMarketPage.tradingUnopenedTitle,
|
|
741
|
+
description: labels.eventMarketPage.tradingUnopenedDescription,
|
|
742
|
+
iconName: "info",
|
|
743
|
+
timestampLabel,
|
|
744
|
+
winningOutcomeLabel
|
|
745
|
+
};
|
|
746
|
+
if (state.kind === "closed") return {
|
|
747
|
+
badgeLabel: labels.eventMarketPage.tradingClosedBadge,
|
|
748
|
+
title: labels.eventMarketPage.tradingClosedTitle,
|
|
749
|
+
description: labels.eventMarketPage.tradingClosedDescription,
|
|
750
|
+
iconName: "warning-filled",
|
|
751
|
+
timestampLabel,
|
|
752
|
+
winningOutcomeLabel
|
|
753
|
+
};
|
|
754
|
+
return {
|
|
755
|
+
badgeLabel: labels.eventMarketPage.tradingUnavailableBadge,
|
|
756
|
+
title: labels.eventMarketPage.tradingUnavailableTitle,
|
|
757
|
+
description: labels.eventMarketPage.tradingUnavailableDescription,
|
|
758
|
+
iconName: "info",
|
|
759
|
+
timestampLabel,
|
|
760
|
+
winningOutcomeLabel
|
|
761
|
+
};
|
|
762
|
+
};
|
|
763
|
+
const resolveTradingStateBadgeClassName = (kind) => {
|
|
764
|
+
if (kind === "resolved") return "border-agg-success/20 bg-agg-success/10 text-agg-success";
|
|
765
|
+
if (kind === "unopened") return "border-agg-primary/15 bg-agg-primary/5 text-agg-primary";
|
|
766
|
+
if (kind === "paused") return "border-agg-warning/20 bg-agg-warning/10 text-agg-warning";
|
|
767
|
+
if (kind === "closed") return "border-agg-warning/20 bg-agg-warning/10 text-agg-warning";
|
|
768
|
+
return "border-agg-separator bg-agg-secondary text-agg-muted-foreground";
|
|
769
|
+
};
|
|
770
|
+
const ORDER_ELIGIBILITY_LABEL_MAP = {
|
|
771
|
+
no_event_selected: (labels) => labels.trading.orderDisabledNoEvent,
|
|
772
|
+
no_market_selected: (labels) => labels.trading.orderDisabledNoMarket,
|
|
773
|
+
no_outcome_selected: (labels) => labels.trading.orderDisabledNoOutcome,
|
|
774
|
+
event_resolved: (labels) => labels.trading.orderDisabledEventResolved,
|
|
775
|
+
event_closed: (labels) => labels.trading.orderDisabledEventClosed,
|
|
776
|
+
event_paused: (labels) => labels.trading.orderDisabledEventPaused,
|
|
777
|
+
event_unopened: (labels) => labels.trading.orderDisabledEventUnopened,
|
|
778
|
+
event_unavailable: (labels) => labels.trading.orderDisabledEventUnavailable,
|
|
779
|
+
market_resolved: (labels) => labels.trading.orderDisabledMarketResolved,
|
|
780
|
+
market_closed: (labels) => labels.trading.orderDisabledMarketClosed,
|
|
781
|
+
market_paused: (labels) => labels.trading.orderDisabledMarketPaused,
|
|
782
|
+
market_unopened: (labels) => labels.trading.orderDisabledMarketUnopened,
|
|
783
|
+
market_unavailable: (labels) => labels.trading.orderDisabledMarketUnavailable
|
|
784
|
+
};
|
|
785
|
+
const resolveOrderEligibilityMessage = (labels, reason) => {
|
|
786
|
+
if (reason === "eligible") return null;
|
|
787
|
+
return ORDER_ELIGIBILITY_LABEL_MAP[reason](labels);
|
|
788
|
+
};
|
|
789
|
+
//#endregion
|
|
790
|
+
Object.defineProperty(exports, "SETTLEMENT_SECTION_ID", {
|
|
791
|
+
enumerable: true,
|
|
792
|
+
get: function() {
|
|
793
|
+
return SETTLEMENT_SECTION_ID;
|
|
794
|
+
}
|
|
795
|
+
});
|
|
796
|
+
Object.defineProperty(exports, "Settlement", {
|
|
797
|
+
enumerable: true,
|
|
798
|
+
get: function() {
|
|
799
|
+
return Settlement;
|
|
800
|
+
}
|
|
801
|
+
});
|
|
802
|
+
Object.defineProperty(exports, "defaultSettlementSectionLabel", {
|
|
803
|
+
enumerable: true,
|
|
804
|
+
get: function() {
|
|
805
|
+
return defaultSettlementSectionLabel;
|
|
806
|
+
}
|
|
807
|
+
});
|
|
808
|
+
Object.defineProperty(exports, "defaultTradingDisclaimer", {
|
|
809
|
+
enumerable: true,
|
|
810
|
+
get: function() {
|
|
811
|
+
return defaultTradingDisclaimer;
|
|
812
|
+
}
|
|
813
|
+
});
|
|
814
|
+
Object.defineProperty(exports, "formatProbabilityCents", {
|
|
815
|
+
enumerable: true,
|
|
816
|
+
get: function() {
|
|
817
|
+
return formatProbabilityCents;
|
|
818
|
+
}
|
|
819
|
+
});
|
|
820
|
+
Object.defineProperty(exports, "getDisplayOutcomePrice", {
|
|
821
|
+
enumerable: true,
|
|
822
|
+
get: function() {
|
|
823
|
+
return getDisplayOutcomePrice;
|
|
824
|
+
}
|
|
825
|
+
});
|
|
826
|
+
Object.defineProperty(exports, "getSettlementDifferenceId", {
|
|
827
|
+
enumerable: true,
|
|
828
|
+
get: function() {
|
|
829
|
+
return getSettlementDifferenceId;
|
|
830
|
+
}
|
|
831
|
+
});
|
|
832
|
+
Object.defineProperty(exports, "getTradingAveragePriceLabel", {
|
|
833
|
+
enumerable: true,
|
|
834
|
+
get: function() {
|
|
835
|
+
return getTradingAveragePriceLabel;
|
|
836
|
+
}
|
|
837
|
+
});
|
|
838
|
+
Object.defineProperty(exports, "getTradingBalanceLabel", {
|
|
839
|
+
enumerable: true,
|
|
840
|
+
get: function() {
|
|
841
|
+
return getTradingBalanceLabel;
|
|
842
|
+
}
|
|
843
|
+
});
|
|
844
|
+
Object.defineProperty(exports, "getTradingDateLabel", {
|
|
845
|
+
enumerable: true,
|
|
846
|
+
get: function() {
|
|
847
|
+
return getTradingDateLabel;
|
|
848
|
+
}
|
|
849
|
+
});
|
|
850
|
+
Object.defineProperty(exports, "getTradingPriceLabel", {
|
|
851
|
+
enumerable: true,
|
|
852
|
+
get: function() {
|
|
853
|
+
return getTradingPriceLabel;
|
|
854
|
+
}
|
|
855
|
+
});
|
|
856
|
+
Object.defineProperty(exports, "getTradingSharesLabel", {
|
|
857
|
+
enumerable: true,
|
|
858
|
+
get: function() {
|
|
859
|
+
return getTradingSharesLabel;
|
|
860
|
+
}
|
|
861
|
+
});
|
|
862
|
+
Object.defineProperty(exports, "getTradingSlippageLabel", {
|
|
863
|
+
enumerable: true,
|
|
864
|
+
get: function() {
|
|
865
|
+
return getTradingSlippageLabel;
|
|
866
|
+
}
|
|
867
|
+
});
|
|
868
|
+
Object.defineProperty(exports, "getTradingValueLabel", {
|
|
869
|
+
enumerable: true,
|
|
870
|
+
get: function() {
|
|
871
|
+
return getTradingValueLabel;
|
|
872
|
+
}
|
|
873
|
+
});
|
|
874
|
+
Object.defineProperty(exports, "getTradingVenueLabel", {
|
|
875
|
+
enumerable: true,
|
|
876
|
+
get: function() {
|
|
877
|
+
return getTradingVenueLabel;
|
|
878
|
+
}
|
|
879
|
+
});
|
|
880
|
+
Object.defineProperty(exports, "prepareSettlementDifferences", {
|
|
881
|
+
enumerable: true,
|
|
882
|
+
get: function() {
|
|
883
|
+
return prepareSettlementDifferences;
|
|
884
|
+
}
|
|
885
|
+
});
|
|
886
|
+
Object.defineProperty(exports, "resolveDifferenceIconClassName", {
|
|
887
|
+
enumerable: true,
|
|
888
|
+
get: function() {
|
|
889
|
+
return resolveDifferenceIconClassName;
|
|
890
|
+
}
|
|
891
|
+
});
|
|
892
|
+
Object.defineProperty(exports, "resolveOrderBookRows", {
|
|
893
|
+
enumerable: true,
|
|
894
|
+
get: function() {
|
|
895
|
+
return resolveOrderBookRows;
|
|
896
|
+
}
|
|
897
|
+
});
|
|
898
|
+
Object.defineProperty(exports, "resolveOrderEligibilityMessage", {
|
|
899
|
+
enumerable: true,
|
|
900
|
+
get: function() {
|
|
901
|
+
return resolveOrderEligibilityMessage;
|
|
902
|
+
}
|
|
903
|
+
});
|
|
904
|
+
Object.defineProperty(exports, "resolveTradingStateBadgeClassName", {
|
|
905
|
+
enumerable: true,
|
|
906
|
+
get: function() {
|
|
907
|
+
return resolveTradingStateBadgeClassName;
|
|
908
|
+
}
|
|
909
|
+
});
|
|
910
|
+
Object.defineProperty(exports, "resolveTradingStatePresentation", {
|
|
911
|
+
enumerable: true,
|
|
912
|
+
get: function() {
|
|
913
|
+
return resolveTradingStatePresentation;
|
|
914
|
+
}
|
|
915
|
+
});
|
|
916
|
+
Object.defineProperty(exports, "resolveUnifiedOrderBookEntries", {
|
|
917
|
+
enumerable: true,
|
|
918
|
+
get: function() {
|
|
919
|
+
return resolveUnifiedOrderBookEntries;
|
|
920
|
+
}
|
|
921
|
+
});
|