@agg-build/ui 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-WLXYCBZV.mjs → chunk-3IY2GA2D.mjs} +10 -16
- package/dist/{chunk-5ES2VJHO.mjs → chunk-4ILR2YH3.mjs} +162 -253
- package/dist/{chunk-HD6HBTK2.mjs → chunk-PEVG67XU.mjs} +369 -19
- package/dist/{chunk-YZNO6IUD.mjs → chunk-TLGQ4LID.mjs} +1306 -1173
- package/dist/{chunk-BYMLPLEZ.mjs → chunk-WFS772A3.mjs} +10 -10
- package/dist/{chunk-LPNZOX3E.mjs → chunk-XDZLCWUZ.mjs} +404 -863
- package/dist/{chunk-43K4PFBC.mjs → chunk-YSCHNVBZ.mjs} +1 -1
- package/dist/events.js +1850 -1545
- package/dist/events.mjs +3 -3
- package/dist/index.js +3651 -3669
- package/dist/index.mjs +189 -118
- package/dist/modals.js +1005 -942
- package/dist/modals.mjs +3 -3
- package/dist/pages.js +2751 -2850
- package/dist/pages.mjs +6 -6
- package/dist/primitives.js +1284 -1166
- package/dist/primitives.mjs +7 -1
- package/dist/styles.css +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/trading.js +3679 -3681
- package/dist/trading.mjs +10 -12
- package/dist/types/events/item-details/settlement-summary.d.mts +6 -2
- package/dist/types/events/item-details/settlement-summary.d.ts +6 -2
- package/dist/types/events/list/event-list.types.d.mts +1 -1
- package/dist/types/events/list/event-list.types.d.ts +1 -1
- package/dist/types/events/list/event-list.utils.d.mts +1 -1
- package/dist/types/events/list/event-list.utils.d.ts +1 -1
- package/dist/types/pages/event-market/event-market.types.d.mts +1 -3
- package/dist/types/pages/event-market/event-market.types.d.ts +1 -3
- package/dist/types/primitives/icon/index.d.mts +3 -1
- package/dist/types/primitives/icon/index.d.ts +3 -1
- package/dist/types/primitives/icon/registry.d.mts +8 -0
- package/dist/types/primitives/icon/registry.d.ts +8 -0
- package/dist/types/primitives/icon/svg/apps.d.mts +5 -0
- package/dist/types/primitives/icon/svg/apps.d.ts +5 -0
- package/dist/types/primitives/icon/svg/circle-overlap.d.mts +5 -0
- package/dist/types/primitives/icon/svg/circle-overlap.d.ts +5 -0
- package/dist/types/primitives/select/index.d.mts +1 -1
- package/dist/types/primitives/select/index.d.ts +1 -1
- package/dist/types/primitives/select/select.types.d.mts +1 -1
- package/dist/types/primitives/select/select.types.d.ts +1 -1
- package/dist/types/primitives/select/select.utils.d.mts +0 -1
- package/dist/types/primitives/select/select.utils.d.ts +0 -1
- package/dist/types/primitives/skeleton/index.d.mts +2 -1
- package/dist/types/primitives/skeleton/index.d.ts +2 -1
- package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.mts +4 -0
- package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.ts +4 -0
- package/dist/types/primitives/typography/index.d.mts +1 -1
- package/dist/types/primitives/typography/index.d.ts +1 -1
- package/dist/types/primitives/typography/typography.types.d.mts +3 -1
- package/dist/types/primitives/typography/typography.types.d.ts +3 -1
- package/dist/types/shared/utils.d.mts +3 -1
- package/dist/types/shared/utils.d.ts +3 -1
- package/dist/types/trading/index.d.mts +0 -1
- package/dist/types/trading/index.d.ts +0 -1
- package/dist/types/trading/place-order/index.place-order.types.d.mts +0 -1
- package/dist/types/trading/place-order/index.place-order.types.d.ts +0 -1
- package/dist/types/trading/place-order/index.place-order.utils.d.mts +0 -4
- package/dist/types/trading/place-order/index.place-order.utils.d.ts +0 -4
- package/dist/types/trading/settlement/index.d.mts +9 -6
- package/dist/types/trading/settlement/index.d.ts +9 -6
- package/dist/types/trading/settlement/settlement-text-renderer.d.mts +8 -0
- package/dist/types/trading/settlement/settlement-text-renderer.d.ts +8 -0
- package/dist/types/trading/settlement/settlement-text.utils.d.mts +36 -0
- package/dist/types/trading/settlement/settlement-text.utils.d.ts +36 -0
- package/dist/types/trading/types.d.mts +0 -19
- package/dist/types/trading/types.d.ts +0 -19
- package/dist/types/trading/utils.d.mts +0 -1
- package/dist/types/trading/utils.d.ts +0 -1
- package/package.json +2 -2
- package/dist/types/primitives/card/card.constants.d.mts +0 -4
- package/dist/types/primitives/card/card.constants.d.ts +0 -4
- package/dist/types/trading/settlement/settlement-details.utils.d.mts +0 -7
- package/dist/types/trading/settlement/settlement-details.utils.d.ts +0 -7
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
|
+
Card,
|
|
3
4
|
DEFAULT_VENUE_COLOR,
|
|
5
|
+
Skeleton,
|
|
4
6
|
__spreadProps,
|
|
5
7
|
__spreadValues,
|
|
8
|
+
cn,
|
|
6
9
|
fallbackLineColors,
|
|
7
10
|
formatMarketProbabilityPercent,
|
|
11
|
+
formatUsd,
|
|
8
12
|
getVenueSummary,
|
|
9
13
|
normalizeProbability,
|
|
10
14
|
normalizeVenueMarketCluster,
|
|
11
15
|
resolveOutcomeTitle,
|
|
12
16
|
resolveVenueLineColor,
|
|
13
17
|
selectPrimaryVenueMarket,
|
|
18
|
+
skeletonViews,
|
|
14
19
|
sortOutcomes
|
|
15
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-TLGQ4LID.mjs";
|
|
16
21
|
|
|
17
22
|
// src/trading/trading-context/index.tsx
|
|
18
23
|
import { useEventTradingContext } from "@agg-build/hooks";
|
|
@@ -112,8 +117,340 @@ var resolveUnifiedOrderBookEntries = ({
|
|
|
112
117
|
return [...askEntries, spreadEntry, ...bidEntries];
|
|
113
118
|
};
|
|
114
119
|
|
|
115
|
-
// src/
|
|
120
|
+
// src/trading/utils.ts
|
|
121
|
+
import { resolveAggUiLabels } from "@agg-build/hooks";
|
|
116
122
|
import dayjs from "dayjs";
|
|
123
|
+
var defaultLabels = resolveAggUiLabels("en-US");
|
|
124
|
+
var defaultSettlementSectionLabel = defaultLabels.trading.settlementSection;
|
|
125
|
+
var defaultTradingDisclaimer = defaultLabels.trading.disclaimer;
|
|
126
|
+
var getTradingDateLabel = (value) => {
|
|
127
|
+
const parsedValue = dayjs(value);
|
|
128
|
+
if (!parsedValue.isValid()) {
|
|
129
|
+
return typeof value === "string" ? value : "";
|
|
130
|
+
}
|
|
131
|
+
return parsedValue.format("MMM D, YYYY");
|
|
132
|
+
};
|
|
133
|
+
var getTradingVenueLabel = (venue, label) => {
|
|
134
|
+
var _a;
|
|
135
|
+
if (label) return label;
|
|
136
|
+
if (!venue) return "Unknown";
|
|
137
|
+
return (_a = defaultLabels.venues[venue]) != null ? _a : venue;
|
|
138
|
+
};
|
|
139
|
+
var getTradingValueLabel = ({
|
|
140
|
+
amount,
|
|
141
|
+
minimumFractionDigits = 0,
|
|
142
|
+
maximumFractionDigits = 2
|
|
143
|
+
}) => {
|
|
144
|
+
return amount.toLocaleString("en-US", {
|
|
145
|
+
style: "currency",
|
|
146
|
+
currency: "USD",
|
|
147
|
+
minimumFractionDigits,
|
|
148
|
+
maximumFractionDigits
|
|
149
|
+
});
|
|
150
|
+
};
|
|
151
|
+
var getTradingPriceLabel = (value) => {
|
|
152
|
+
return `${Math.round(value * 100)}\xA2`;
|
|
153
|
+
};
|
|
154
|
+
var getTradingAveragePriceLabel = (value) => {
|
|
155
|
+
return defaultLabels.trading.averagePrice(value);
|
|
156
|
+
};
|
|
157
|
+
var getTradingBalanceLabel = (value) => {
|
|
158
|
+
return defaultLabels.trading.balance(formatUsd(value));
|
|
159
|
+
};
|
|
160
|
+
var getTradingSharesLabel = (value) => {
|
|
161
|
+
return defaultLabels.trading.shares(value);
|
|
162
|
+
};
|
|
163
|
+
var getTradingSlippageLabel = (value) => {
|
|
164
|
+
return defaultLabels.trading.slippage(value);
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
// src/trading/settlement/index.tsx
|
|
168
|
+
import { useLabels } from "@agg-build/hooks";
|
|
169
|
+
import { useMemo } from "react";
|
|
170
|
+
|
|
171
|
+
// src/trading/settlement/settlement-text-renderer.tsx
|
|
172
|
+
import { Fragment } from "react";
|
|
173
|
+
|
|
174
|
+
// src/trading/settlement/settlement-text.utils.ts
|
|
175
|
+
var stripHtmlFragments = (text) => {
|
|
176
|
+
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");
|
|
177
|
+
};
|
|
178
|
+
var isListLine = (line) => /^\s*[-*]\s+/.test(line);
|
|
179
|
+
var stripBullet = (line) => line.replace(/^\s*[-*]\s+/, "").trim();
|
|
180
|
+
var parseSettlementBlocks = (input) => {
|
|
181
|
+
const normalized = stripHtmlFragments(input).trim();
|
|
182
|
+
if (!normalized) return [];
|
|
183
|
+
const paragraphs = normalized.split(/\n{2,}/);
|
|
184
|
+
const blocks = [];
|
|
185
|
+
for (const rawParagraph of paragraphs) {
|
|
186
|
+
const lines = rawParagraph.split("\n").map((line) => line.replace(/\s+$/, "")).filter((line) => line.trim().length > 0);
|
|
187
|
+
if (lines.length === 0) continue;
|
|
188
|
+
if (lines.every(isListLine)) {
|
|
189
|
+
blocks.push({ kind: "list", items: lines.map(stripBullet) });
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
blocks.push({ kind: "paragraph", lines: lines.map((line) => line.trim()) });
|
|
193
|
+
}
|
|
194
|
+
return blocks;
|
|
195
|
+
};
|
|
196
|
+
var getFirstSettlementParagraph = (input) => {
|
|
197
|
+
if (!input) return "";
|
|
198
|
+
const blocks = parseSettlementBlocks(input);
|
|
199
|
+
const firstParagraph = blocks.find((block) => block.kind === "paragraph");
|
|
200
|
+
if (!firstParagraph || firstParagraph.kind !== "paragraph") return "";
|
|
201
|
+
return firstParagraph.lines.join(" ").trim();
|
|
202
|
+
};
|
|
203
|
+
var normalizeSettlementForCompare = (input) => {
|
|
204
|
+
return stripHtmlFragments(input).replace(/\s+/g, " ").trim().toLowerCase();
|
|
205
|
+
};
|
|
206
|
+
var dedupeSettlementSources = (sources) => {
|
|
207
|
+
const order = ["eventDescription", "marketDescription", "primaryRules"];
|
|
208
|
+
const seen = /* @__PURE__ */ new Set();
|
|
209
|
+
const result = [];
|
|
210
|
+
for (const key of order) {
|
|
211
|
+
const value = sources[key];
|
|
212
|
+
if (typeof value !== "string") continue;
|
|
213
|
+
const trimmed = value.trim();
|
|
214
|
+
if (!trimmed) continue;
|
|
215
|
+
const fingerprint = normalizeSettlementForCompare(trimmed);
|
|
216
|
+
if (!fingerprint) continue;
|
|
217
|
+
if (seen.has(fingerprint)) continue;
|
|
218
|
+
seen.add(fingerprint);
|
|
219
|
+
result.push({ key, content: trimmed });
|
|
220
|
+
}
|
|
221
|
+
return result;
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
// src/trading/settlement/settlement-text-renderer.tsx
|
|
225
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
226
|
+
var inlineTokenRegex = new RegExp(
|
|
227
|
+
[
|
|
228
|
+
/\[([^\]\n]+)\]\(([^)\s]+)\)/.source,
|
|
229
|
+
// 1=link text, 2=link href
|
|
230
|
+
/\*\*([^*\n]+?)\*\*/.source,
|
|
231
|
+
// 3=bold inner
|
|
232
|
+
/`([^`\n]+?)`/.source,
|
|
233
|
+
// 4=code inner
|
|
234
|
+
/(https?:\/\/[^\s<>"'`]+)/.source
|
|
235
|
+
// 5=bare url
|
|
236
|
+
].join("|"),
|
|
237
|
+
"g"
|
|
238
|
+
);
|
|
239
|
+
var trailingUrlPunctuationRegex = /[.,;:!?)\]]+$/;
|
|
240
|
+
var isLinkMatch = (match) => match[1] !== void 0 && match[2] !== void 0;
|
|
241
|
+
var linkClassName = "agg-settlement-text-link text-agg-primary underline hover:opacity-80";
|
|
242
|
+
var renderInlineSegment = (text, baseKey) => {
|
|
243
|
+
const nodes = [];
|
|
244
|
+
let lastIndex = 0;
|
|
245
|
+
let segmentIndex = 0;
|
|
246
|
+
inlineTokenRegex.lastIndex = 0;
|
|
247
|
+
let match;
|
|
248
|
+
while ((match = inlineTokenRegex.exec(text)) !== null) {
|
|
249
|
+
let matchEnd = match.index + match[0].length;
|
|
250
|
+
let bareUrl = match[5];
|
|
251
|
+
if (bareUrl !== void 0) {
|
|
252
|
+
const trailing = trailingUrlPunctuationRegex.exec(bareUrl);
|
|
253
|
+
if (trailing) {
|
|
254
|
+
const trimmed = bareUrl.slice(0, bareUrl.length - trailing[0].length);
|
|
255
|
+
if (trimmed.length > "https://".length) {
|
|
256
|
+
bareUrl = trimmed;
|
|
257
|
+
matchEnd -= trailing[0].length;
|
|
258
|
+
inlineTokenRegex.lastIndex = matchEnd;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (match.index > lastIndex) {
|
|
263
|
+
nodes.push(
|
|
264
|
+
/* @__PURE__ */ jsx(Fragment, { children: text.slice(lastIndex, match.index) }, `${baseKey}-text-${segmentIndex++}`)
|
|
265
|
+
);
|
|
266
|
+
}
|
|
267
|
+
if (isLinkMatch(match)) {
|
|
268
|
+
nodes.push(
|
|
269
|
+
/* @__PURE__ */ jsx(
|
|
270
|
+
"a",
|
|
271
|
+
{
|
|
272
|
+
href: match[2],
|
|
273
|
+
target: "_blank",
|
|
274
|
+
rel: "noopener noreferrer",
|
|
275
|
+
className: linkClassName,
|
|
276
|
+
children: match[1]
|
|
277
|
+
},
|
|
278
|
+
`${baseKey}-link-${segmentIndex++}`
|
|
279
|
+
)
|
|
280
|
+
);
|
|
281
|
+
} else if (match[3] !== void 0) {
|
|
282
|
+
nodes.push(
|
|
283
|
+
/* @__PURE__ */ jsx(
|
|
284
|
+
"strong",
|
|
285
|
+
{
|
|
286
|
+
className: "agg-settlement-text-bold font-agg-bold",
|
|
287
|
+
children: match[3]
|
|
288
|
+
},
|
|
289
|
+
`${baseKey}-bold-${segmentIndex++}`
|
|
290
|
+
)
|
|
291
|
+
);
|
|
292
|
+
} else if (match[4] !== void 0) {
|
|
293
|
+
nodes.push(
|
|
294
|
+
/* @__PURE__ */ jsx(
|
|
295
|
+
"code",
|
|
296
|
+
{
|
|
297
|
+
className: "agg-settlement-text-code rounded-agg-sm bg-agg-secondary-hover px-1 py-0.5 font-mono text-[0.875em]",
|
|
298
|
+
children: match[4]
|
|
299
|
+
},
|
|
300
|
+
`${baseKey}-code-${segmentIndex++}`
|
|
301
|
+
)
|
|
302
|
+
);
|
|
303
|
+
} else if (bareUrl !== void 0) {
|
|
304
|
+
nodes.push(
|
|
305
|
+
/* @__PURE__ */ jsx(
|
|
306
|
+
"a",
|
|
307
|
+
{
|
|
308
|
+
href: bareUrl,
|
|
309
|
+
target: "_blank",
|
|
310
|
+
rel: "noopener noreferrer",
|
|
311
|
+
className: linkClassName,
|
|
312
|
+
children: bareUrl
|
|
313
|
+
},
|
|
314
|
+
`${baseKey}-url-${segmentIndex++}`
|
|
315
|
+
)
|
|
316
|
+
);
|
|
317
|
+
}
|
|
318
|
+
lastIndex = matchEnd;
|
|
319
|
+
}
|
|
320
|
+
if (lastIndex < text.length) {
|
|
321
|
+
nodes.push(
|
|
322
|
+
/* @__PURE__ */ jsx(Fragment, { children: text.slice(lastIndex) }, `${baseKey}-text-${segmentIndex++}`)
|
|
323
|
+
);
|
|
324
|
+
}
|
|
325
|
+
return nodes;
|
|
326
|
+
};
|
|
327
|
+
var renderBlock = (block, blockIndex) => {
|
|
328
|
+
if (block.kind === "list") {
|
|
329
|
+
return /* @__PURE__ */ jsx(
|
|
330
|
+
"ul",
|
|
331
|
+
{
|
|
332
|
+
className: "agg-settlement-text-list list-disc pl-5 text-agg-sm leading-agg-5 text-agg-foreground",
|
|
333
|
+
children: block.items.map((item, itemIndex) => /* @__PURE__ */ jsx(
|
|
334
|
+
"li",
|
|
335
|
+
{
|
|
336
|
+
className: "agg-settlement-text-list-item",
|
|
337
|
+
children: renderInlineSegment(item, `block-${blockIndex}-item-${itemIndex}`)
|
|
338
|
+
},
|
|
339
|
+
`block-${blockIndex}-item-${itemIndex}`
|
|
340
|
+
))
|
|
341
|
+
},
|
|
342
|
+
`block-${blockIndex}`
|
|
343
|
+
);
|
|
344
|
+
}
|
|
345
|
+
return /* @__PURE__ */ jsx(
|
|
346
|
+
"p",
|
|
347
|
+
{
|
|
348
|
+
className: "agg-settlement-text-paragraph text-agg-sm leading-agg-5 text-agg-foreground break-words [overflow-wrap:anywhere]",
|
|
349
|
+
children: block.lines.map((line, lineIndex) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
350
|
+
lineIndex > 0 ? /* @__PURE__ */ jsx("br", {}) : null,
|
|
351
|
+
renderInlineSegment(line, `block-${blockIndex}-line-${lineIndex}`)
|
|
352
|
+
] }, `block-${blockIndex}-line-${lineIndex}`))
|
|
353
|
+
},
|
|
354
|
+
`block-${blockIndex}`
|
|
355
|
+
);
|
|
356
|
+
};
|
|
357
|
+
var SettlementTextRenderer = ({
|
|
358
|
+
content,
|
|
359
|
+
className
|
|
360
|
+
}) => {
|
|
361
|
+
const blocks = parseSettlementBlocks(content);
|
|
362
|
+
if (blocks.length === 0) return null;
|
|
363
|
+
return /* @__PURE__ */ jsx("div", { className: cn("agg-settlement-text flex flex-col gap-2", className), children: blocks.map((block, blockIndex) => renderBlock(block, blockIndex)) });
|
|
364
|
+
};
|
|
365
|
+
SettlementTextRenderer.displayName = "SettlementTextRenderer";
|
|
366
|
+
|
|
367
|
+
// src/trading/settlement/index.tsx
|
|
368
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
369
|
+
var SETTLEMENT_SECTION_ID = "agg-settlement-section";
|
|
370
|
+
var getSettlementHeaderClassName = () => {
|
|
371
|
+
return "flex items-center justify-between gap-4";
|
|
372
|
+
};
|
|
373
|
+
var Settlement = ({
|
|
374
|
+
className,
|
|
375
|
+
id = SETTLEMENT_SECTION_ID,
|
|
376
|
+
sectionLabel = defaultSettlementSectionLabel,
|
|
377
|
+
question,
|
|
378
|
+
eventDescription,
|
|
379
|
+
marketDescription,
|
|
380
|
+
primaryRules,
|
|
381
|
+
isLoading = false
|
|
382
|
+
}) => {
|
|
383
|
+
var _a, _b, _c;
|
|
384
|
+
const labels = useLabels();
|
|
385
|
+
const blocks = useMemo(
|
|
386
|
+
() => dedupeSettlementSources({
|
|
387
|
+
eventDescription,
|
|
388
|
+
marketDescription,
|
|
389
|
+
primaryRules
|
|
390
|
+
}),
|
|
391
|
+
[eventDescription, marketDescription, primaryRules]
|
|
392
|
+
);
|
|
393
|
+
const eventBlock = (_a = blocks.find((block) => block.key === "eventDescription")) != null ? _a : null;
|
|
394
|
+
const marketBlock = (_b = blocks.find((block) => block.key === "marketDescription")) != null ? _b : null;
|
|
395
|
+
const primaryRulesBlock = (_c = blocks.find((block) => block.key === "primaryRules")) != null ? _c : null;
|
|
396
|
+
if (isLoading) {
|
|
397
|
+
return /* @__PURE__ */ jsx2(
|
|
398
|
+
Skeleton,
|
|
399
|
+
{
|
|
400
|
+
ariaLabel: labels.trading.settlementLoading,
|
|
401
|
+
className,
|
|
402
|
+
view: skeletonViews.settlement
|
|
403
|
+
}
|
|
404
|
+
);
|
|
405
|
+
}
|
|
406
|
+
const resolvedSectionLabel = sectionLabel === defaultSettlementSectionLabel ? labels.trading.settlementSection : sectionLabel;
|
|
407
|
+
return /* @__PURE__ */ jsxs2(
|
|
408
|
+
Card,
|
|
409
|
+
{
|
|
410
|
+
id,
|
|
411
|
+
className: cn(
|
|
412
|
+
"group/agg-settlement-card",
|
|
413
|
+
"flex flex-col w-full gap-5 rounded-agg-xl border border-agg-separator bg-agg-secondary p-5 shadow-none hover:shadow-none",
|
|
414
|
+
className
|
|
415
|
+
),
|
|
416
|
+
children: [
|
|
417
|
+
/* @__PURE__ */ jsxs2("div", { className: cn("agg-settlement-header", getSettlementHeaderClassName()), children: [
|
|
418
|
+
/* @__PURE__ */ jsx2("p", { className: "text-agg-xs font-agg-bold leading-agg-4 uppercase text-agg-muted-foreground", children: resolvedSectionLabel }),
|
|
419
|
+
question ? /* @__PURE__ */ jsx2("p", { className: "agg-settlement-question text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children: question }) : null
|
|
420
|
+
] }),
|
|
421
|
+
blocks.length === 0 ? /* @__PURE__ */ jsx2("p", { className: "agg-settlement-empty text-agg-sm leading-agg-5 text-agg-muted-foreground", children: labels.trading.settlementEmpty }) : /* @__PURE__ */ jsxs2("div", { className: "agg-settlement-sections flex flex-col gap-4", children: [
|
|
422
|
+
eventBlock || marketBlock ? /* @__PURE__ */ jsxs2(
|
|
423
|
+
"div",
|
|
424
|
+
{
|
|
425
|
+
className: "agg-settlement-section agg-settlement-section-description",
|
|
426
|
+
"data-source": "description",
|
|
427
|
+
children: [
|
|
428
|
+
eventBlock ? /* @__PURE__ */ jsx2("div", { "data-source": "eventDescription", children: /* @__PURE__ */ jsx2(SettlementTextRenderer, { content: eventBlock.content }) }) : null,
|
|
429
|
+
eventBlock && marketBlock ? /* @__PURE__ */ jsx2("hr", { className: "agg-settlement-divider my-4 border-0 border-t border-agg-separator" }) : null,
|
|
430
|
+
marketBlock ? /* @__PURE__ */ jsx2("div", { "data-source": "marketDescription", children: /* @__PURE__ */ jsx2(SettlementTextRenderer, { content: marketBlock.content }) }) : null
|
|
431
|
+
]
|
|
432
|
+
}
|
|
433
|
+
) : null,
|
|
434
|
+
primaryRulesBlock ? /* @__PURE__ */ jsxs2(
|
|
435
|
+
"div",
|
|
436
|
+
{
|
|
437
|
+
className: "agg-settlement-section agg-settlement-section-primaryRules",
|
|
438
|
+
"data-source": "primaryRules",
|
|
439
|
+
children: [
|
|
440
|
+
/* @__PURE__ */ jsx2("p", { className: "agg-settlement-section-label text-agg-xs font-agg-bold leading-agg-4 uppercase text-agg-muted-foreground mb-2", children: labels.trading.settlementPrimaryRulesLabel }),
|
|
441
|
+
/* @__PURE__ */ jsx2(SettlementTextRenderer, { content: primaryRulesBlock.content })
|
|
442
|
+
]
|
|
443
|
+
}
|
|
444
|
+
) : null
|
|
445
|
+
] })
|
|
446
|
+
]
|
|
447
|
+
}
|
|
448
|
+
);
|
|
449
|
+
};
|
|
450
|
+
Settlement.displayName = "Settlement";
|
|
451
|
+
|
|
452
|
+
// src/events/item-details/event-list-item-details.utils.ts
|
|
453
|
+
import dayjs2 from "dayjs";
|
|
117
454
|
var compareOutcomeSelectorLabels = (leftLabel, rightLabel) => {
|
|
118
455
|
const leftSemanticLabel = toSemanticLabel(leftLabel);
|
|
119
456
|
const rightSemanticLabel = toSemanticLabel(rightLabel);
|
|
@@ -126,8 +463,8 @@ var compareOutcomeSelectorLabels = (leftLabel, rightLabel) => {
|
|
|
126
463
|
if (leftBinaryOrder != null && rightBinaryOrder != null) {
|
|
127
464
|
return leftBinaryOrder - rightBinaryOrder;
|
|
128
465
|
}
|
|
129
|
-
const leftDate = isDateLikeLabel(leftLabel) ?
|
|
130
|
-
const rightDate = isDateLikeLabel(rightLabel) ?
|
|
466
|
+
const leftDate = isDateLikeLabel(leftLabel) ? dayjs2(leftLabel).valueOf() : null;
|
|
467
|
+
const rightDate = isDateLikeLabel(rightLabel) ? dayjs2(rightLabel).valueOf() : null;
|
|
131
468
|
if (leftDate != null && rightDate != null && leftDate !== rightDate) {
|
|
132
469
|
return leftDate - rightDate;
|
|
133
470
|
}
|
|
@@ -168,47 +505,47 @@ var toSemanticLabel = (value) => {
|
|
|
168
505
|
};
|
|
169
506
|
var isDateLikeLabel = (value) => {
|
|
170
507
|
if (!value.trim()) return false;
|
|
171
|
-
return
|
|
508
|
+
return dayjs2(value).isValid();
|
|
172
509
|
};
|
|
173
510
|
var getTimeWindowByRange = (range) => {
|
|
174
|
-
const endTs =
|
|
511
|
+
const endTs = dayjs2().unix();
|
|
175
512
|
if (range === "1H") {
|
|
176
513
|
return {
|
|
177
|
-
startTs:
|
|
514
|
+
startTs: dayjs2.unix(endTs).subtract(1, "hour").unix(),
|
|
178
515
|
endTs,
|
|
179
516
|
intervalMinutes: 5
|
|
180
517
|
};
|
|
181
518
|
}
|
|
182
519
|
if (range === "6H") {
|
|
183
520
|
return {
|
|
184
|
-
startTs:
|
|
521
|
+
startTs: dayjs2.unix(endTs).subtract(6, "hour").unix(),
|
|
185
522
|
endTs,
|
|
186
523
|
intervalMinutes: 15
|
|
187
524
|
};
|
|
188
525
|
}
|
|
189
526
|
if (range === "1D") {
|
|
190
527
|
return {
|
|
191
|
-
startTs:
|
|
528
|
+
startTs: dayjs2.unix(endTs).subtract(1, "day").unix(),
|
|
192
529
|
endTs,
|
|
193
530
|
intervalMinutes: 30
|
|
194
531
|
};
|
|
195
532
|
}
|
|
196
533
|
if (range === "1W") {
|
|
197
534
|
return {
|
|
198
|
-
startTs:
|
|
535
|
+
startTs: dayjs2.unix(endTs).subtract(7, "day").unix(),
|
|
199
536
|
endTs,
|
|
200
537
|
intervalMinutes: 60
|
|
201
538
|
};
|
|
202
539
|
}
|
|
203
540
|
if (range === "1M") {
|
|
204
541
|
return {
|
|
205
|
-
startTs:
|
|
542
|
+
startTs: dayjs2.unix(endTs).subtract(1, "month").unix(),
|
|
206
543
|
endTs,
|
|
207
544
|
intervalMinutes: 240
|
|
208
545
|
};
|
|
209
546
|
}
|
|
210
547
|
return {
|
|
211
|
-
startTs:
|
|
548
|
+
startTs: dayjs2.unix(endTs).subtract(6, "month").unix(),
|
|
212
549
|
endTs,
|
|
213
550
|
intervalMinutes: 720
|
|
214
551
|
};
|
|
@@ -405,7 +742,7 @@ var resolveMarketChartLiveState = ({
|
|
|
405
742
|
|
|
406
743
|
// src/events/market-details/market-details.utils.ts
|
|
407
744
|
import { safeParse as safeParse2 } from "@agg-build/sdk";
|
|
408
|
-
import
|
|
745
|
+
import dayjs3 from "dayjs";
|
|
409
746
|
var VALID_TABS = /* @__PURE__ */ new Set(["order-book", "graph", "other"]);
|
|
410
747
|
var isMarketDetailsTab = (v) => typeof v === "string" && VALID_TABS.has(v);
|
|
411
748
|
var normalizeLabel2 = (value) => {
|
|
@@ -558,19 +895,19 @@ var resolveOtherTabRows = (market, labels) => {
|
|
|
558
895
|
if (market.creationDate) {
|
|
559
896
|
rows.push({
|
|
560
897
|
label: labels.marketDetails.meta.created,
|
|
561
|
-
value:
|
|
898
|
+
value: dayjs3(market.creationDate).format("MMM D, YYYY")
|
|
562
899
|
});
|
|
563
900
|
}
|
|
564
901
|
if (market.startDate) {
|
|
565
902
|
rows.push({
|
|
566
903
|
label: labels.marketDetails.meta.opens,
|
|
567
|
-
value:
|
|
904
|
+
value: dayjs3(market.startDate).format("MMM D, YYYY")
|
|
568
905
|
});
|
|
569
906
|
}
|
|
570
907
|
if (market.endDate) {
|
|
571
908
|
rows.push({
|
|
572
909
|
label: labels.marketDetails.meta.closes,
|
|
573
|
-
value:
|
|
910
|
+
value: dayjs3(market.endDate).format("MMM D, YYYY")
|
|
574
911
|
});
|
|
575
912
|
}
|
|
576
913
|
if (rows.length === 1) {
|
|
@@ -619,10 +956,10 @@ var buildMarketDetailsModel = ({
|
|
|
619
956
|
};
|
|
620
957
|
|
|
621
958
|
// src/events/shared/event-trading-state.utils.ts
|
|
622
|
-
import
|
|
959
|
+
import dayjs4 from "dayjs";
|
|
623
960
|
var formatTradingStateDate = (value) => {
|
|
624
|
-
if (!
|
|
625
|
-
return
|
|
961
|
+
if (!dayjs4(value).isValid()) return value;
|
|
962
|
+
return dayjs4(value).format("MMM D, YYYY");
|
|
626
963
|
};
|
|
627
964
|
var resolveTradingStateTimestampLabel = (labels, state) => {
|
|
628
965
|
if (state.kind === "resolved" && state.resolvesAt) {
|
|
@@ -742,6 +1079,19 @@ export {
|
|
|
742
1079
|
resolveHeaderOutcomeItems,
|
|
743
1080
|
resolveOtherTabRows,
|
|
744
1081
|
buildMarketDetailsModel,
|
|
1082
|
+
defaultSettlementSectionLabel,
|
|
1083
|
+
defaultTradingDisclaimer,
|
|
1084
|
+
getTradingDateLabel,
|
|
1085
|
+
getTradingVenueLabel,
|
|
1086
|
+
getTradingValueLabel,
|
|
1087
|
+
getTradingPriceLabel,
|
|
1088
|
+
getTradingAveragePriceLabel,
|
|
1089
|
+
getTradingBalanceLabel,
|
|
1090
|
+
getTradingSharesLabel,
|
|
1091
|
+
getTradingSlippageLabel,
|
|
1092
|
+
getFirstSettlementParagraph,
|
|
1093
|
+
SETTLEMENT_SECTION_ID,
|
|
1094
|
+
Settlement,
|
|
745
1095
|
resolveTradingStatePresentation,
|
|
746
1096
|
resolveTradingStateBadgeClassName,
|
|
747
1097
|
resolveOrderEligibilityMessage
|