@seatlayer/js 0.59.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +92 -9
- package/dist/index.d.cts +138 -25
- package/dist/index.d.ts +138 -25
- package/dist/index.js +91 -8
- package/package.json +7 -3
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PickerSeat, PickerSelectionValidator, RendererViewMode, SeatHoverDetails, PickerSelectionValidity, PickerTransport, PickerMapTheme } from '@seatlayer/core';
|
|
1
|
+
import { PickerSeat, PickerGAArea, PickerSelectionValidator, RendererViewMode, SeatHoverDetails, PickerSelectionValidity, PickerTransport, PickerMapTheme } from '@seatlayer/core';
|
|
2
2
|
export { ExpandedSeat, PickerMapTheme, PickerSelectionValidator, PickerSelectionValidity, PickerSelectionViolation, RendererViewMode, SeatHoverDetails } from '@seatlayer/core';
|
|
3
3
|
export { A as AccessIntentForbidsDetails, a as AccessLinkRecord, b as AccessLinkReveal, c as AccessLinkState, d as AccessLinkStatus, e as AccessLinkStatusRecord, f as ArchiveBlockedDetails, g as AssignmentBuckets, h as AssignmentDropDetails, i as AssignmentResult, B as BucketRow, C as ChannelAccessIntent, j as ChannelAccessSummary, k as ChannelAllocationPage, l as ChannelAttribution, m as ChannelAuditEntry, n as ChannelAuditPage, o as ChannelCounts, p as ChannelListResult, q as ChannelPreviewProjection, r as ChannelRecord, s as ChannelReport, t as ChannelReportLinkRecord, u as ChannelReportLinkReveal, v as ChannelReportResult, w as ChannelReportRow, x as ChannelSeatStatus, y as ChannelState, z as ChannelsCapabilities, D as ChannelsClient, E as ChannelsMode, F as ChannelsModeHost, G as ChannelsRowView, H as ChannelsSeatView, I as ControlRoomActivityEntry, J as ControlRoomSectionMetric, K as ControlRoomSnapshot, L as EventCategoryAssignmentResult, M as EventScopedManageToken, N as EventTableBookingMode, O as EventTableBookingResult, P as IntentSwitchBlockedDetails, Q as InventoryBooking, R as InventoryBookingActivity, S as InventoryBookingDetail, T as InventoryBookingObject, U as InventoryBookingState, V as InventoryBookingsPage, W as InventoryBookingsQuery, X as LogEntry, Y as LogPage, Z as ManageApi, _ as ManageApiError, $ as ReportByStatus, a0 as ReportCategoryMeta, a1 as ReportCategoryRow, a2 as ReportResult, a3 as SeatManager, a4 as SeatManagerActionResult, a5 as SeatManagerActivity, a6 as SeatManagerCapability, a7 as SeatManagerConnection, a8 as SeatManagerFilteredSection, a9 as SeatManagerMode, aa as SeatManagerOptions, ab as SeatManagerSelectionValidity, ac as SeatManagerTallies, ad as SelectionSourceRow } from './channelsMode-2z9HBOAX.cjs';
|
|
4
4
|
|
|
@@ -506,6 +506,77 @@ interface PubApiOptions {
|
|
|
506
506
|
onObjectUnavailable?: (event: SelectedObjectUnavailableEvent) => void;
|
|
507
507
|
}
|
|
508
508
|
|
|
509
|
+
/**
|
|
510
|
+
* The general-admission quantity prompt, and the GA half of the tray.
|
|
511
|
+
*
|
|
512
|
+
* Before this module a buyer could tap a GA area on the map and nothing at all
|
|
513
|
+
* happened — `onGAClick` reached `PickerController` but the drop-in widget never
|
|
514
|
+
* wired it — while every area on the chart rendered a permanent stepper row in
|
|
515
|
+
* the tray whether or not the buyer wanted one. Twelve areas meant twelve
|
|
516
|
+
* steppers of clutter, and on a phone (where the tray is a collapsed sheet) the
|
|
517
|
+
* only control that existed was the one the buyer could not see.
|
|
518
|
+
*
|
|
519
|
+
* What replaces it is two taps: tap the area, the prompt opens with a quantity
|
|
520
|
+
* already seeded to 1 (never 0 — nobody opens a ticket picker to buy none), and
|
|
521
|
+
* the primary button reads what it will do, priced live: `Add 3 tickets · $45`.
|
|
522
|
+
* The map stays visible behind it — a popover anchored at the tap on a wide
|
|
523
|
+
* layout, a bottom sheet on a narrow one — because the buyer is choosing where
|
|
524
|
+
* to stand, and a centred modal hides exactly the thing being chosen.
|
|
525
|
+
*
|
|
526
|
+
* The tray keeps the stepper rows, but only for areas with a quantity: it is a
|
|
527
|
+
* cart, not a price list. Everything else collapses into one compact `Areas`
|
|
528
|
+
* list, which is the keyboard/screen-reader entry point into the same prompt.
|
|
529
|
+
*
|
|
530
|
+
* Split out of SeatPicker.ts rather than added to it: that file is pinned at its
|
|
531
|
+
* size in the app's file-size ratchet and may not grow.
|
|
532
|
+
*/
|
|
533
|
+
|
|
534
|
+
/** One priced ticket type inside an area. `id` is null for an untiered area. */
|
|
535
|
+
interface GaPromptTier {
|
|
536
|
+
id: string | null;
|
|
537
|
+
label: string;
|
|
538
|
+
price: number;
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* What a host takes over when it returns `true` from `onGAPrompt`. `confirm`
|
|
542
|
+
* accepts a plain number for a single-tier area, or a per-tier record; both
|
|
543
|
+
* land in exactly the same place the built-in prompt's Add button does.
|
|
544
|
+
*/
|
|
545
|
+
interface GAPromptRequest {
|
|
546
|
+
area: PickerGAArea;
|
|
547
|
+
/** Quantities already chosen here, per tier id (`''` for an untiered area). */
|
|
548
|
+
selected: Record<string, number>;
|
|
549
|
+
min: number;
|
|
550
|
+
/** min(units still free, order cap − tickets chosen elsewhere). */
|
|
551
|
+
max: number;
|
|
552
|
+
tiers: GaPromptTier[];
|
|
553
|
+
confirm(quantity: number | Record<string, number>): void;
|
|
554
|
+
cancel(): void;
|
|
555
|
+
}
|
|
556
|
+
/** Per (area, tier) pending quantities. A `null` tier key is an untiered area. */
|
|
557
|
+
type GaQtyMap = Map<string, Map<string | null, number>>;
|
|
558
|
+
/** The slice of SeatPicker this module drives. Everything else stays private. */
|
|
559
|
+
interface GaPromptPicker {
|
|
560
|
+
root: HTMLDivElement | null;
|
|
561
|
+
els: Record<string, HTMLElement>;
|
|
562
|
+
srEl: HTMLDivElement | null;
|
|
563
|
+
gaQty: GaQtyMap;
|
|
564
|
+
maxTickets: number;
|
|
565
|
+
salesClosed: boolean;
|
|
566
|
+
gaPromptEl: HTMLDivElement | null;
|
|
567
|
+
gaPromptReturnFocus: HTMLElement | null;
|
|
568
|
+
gaAreasExpanded: boolean;
|
|
569
|
+
money(amount: number): string;
|
|
570
|
+
paidPrice(categoryKey: string | undefined, tierId: string | null | undefined, fallback: number, objectLabel?: string): number;
|
|
571
|
+
tf(key: string, fallback: string): string;
|
|
572
|
+
toast(message: string, tone?: 'error' | 'success' | 'warning' | 'neutral'): void;
|
|
573
|
+
reducedMotion(): boolean;
|
|
574
|
+
syncTray(): void;
|
|
575
|
+
/** Tickets in the order right now, held + selected seats + every GA quantity. */
|
|
576
|
+
totalTicketCount(): number;
|
|
577
|
+
onGAPromptHook?: ((prompt: GAPromptRequest) => boolean | void) | undefined;
|
|
578
|
+
}
|
|
579
|
+
|
|
509
580
|
/**
|
|
510
581
|
* SeatingChart — the embeddable buyer picker.
|
|
511
582
|
*
|
|
@@ -580,7 +651,7 @@ interface SeatingChartOptions {
|
|
|
580
651
|
selectionValidators?: PickerSelectionValidator[];
|
|
581
652
|
/**
|
|
582
653
|
* BCP 47 language for the widget UI — `'de'`, `'es-MX'`, etc. Falls back to
|
|
583
|
-
* the browser language, then English.
|
|
654
|
+
* the browser language, then English. 37 languages ship. The German
|
|
584
655
|
* bundle (etc.) is fetched on demand so unused languages cost nothing.
|
|
585
656
|
*/
|
|
586
657
|
locale?: string;
|
|
@@ -628,6 +699,13 @@ interface SeatingChartOptions {
|
|
|
628
699
|
onHoldRestored?: (result: HoldResult) => void;
|
|
629
700
|
onHoldExpired?: () => void;
|
|
630
701
|
onGAClick?: (area: GAAreaAvailability) => void;
|
|
702
|
+
/**
|
|
703
|
+
* Mirror of {@link SeatPickerOptions.onGAPrompt}. The low-level chart draws no
|
|
704
|
+
* quantity UI of its own, so this fires purely as the "the buyer wants to pick
|
|
705
|
+
* a quantity here" signal, with the same pre-computed `min`/`max`/`tiers` the
|
|
706
|
+
* full widget would have used; the return value is accepted and ignored.
|
|
707
|
+
*/
|
|
708
|
+
onGAPrompt?: (prompt: GAPromptRequest) => boolean | void;
|
|
631
709
|
/**
|
|
632
710
|
* The buyer access session lapsed. `refreshed` says whether the provider
|
|
633
711
|
* already recovered it — false means private inventory is now unavailable and
|
|
@@ -981,7 +1059,7 @@ type SeatingChartIdentityProp = (typeof SEATING_CHART_IDENTITY_PROPS)[number];
|
|
|
981
1059
|
declare const SEATING_CHART_VALUE_PROPS: readonly ["event", "apiBase", "maxSelection", "numberOfPlacesToSelect", "selectionValidators", "publicKey", "locale", "currency", "colorblindSafe", "initialView", "errorDisplay", "selectedObjects", "selectableObjects", "messages", "seatTooltip", "buyerAccessTokenProvider", "buyerAccessToken"];
|
|
982
1060
|
type SeatingChartValueProp = (typeof SEATING_CHART_VALUE_PROPS)[number];
|
|
983
1061
|
/** Every callback option a wrapper wires to its own event mechanism. */
|
|
984
|
-
declare const SEATING_CHART_CALLBACK_PROPS: readonly ["onSelectionChange", "onSelectionValidityChange", "onSelectionValid", "onSelectionInvalid", "onSelectionLimit", "onHold", "onHoldRestored", "onHoldExpired", "onGAClick", "onError", "onDeckTap", "onHint", "onSeatHover", "onAccessExpired", "onAccessUnavailable", "onSelectedObjectUnavailable"];
|
|
1062
|
+
declare const SEATING_CHART_CALLBACK_PROPS: readonly ["onSelectionChange", "onSelectionValidityChange", "onSelectionValid", "onSelectionInvalid", "onSelectionLimit", "onHold", "onHoldRestored", "onHoldExpired", "onGAClick", "onGAPrompt", "onError", "onDeckTap", "onHint", "onSeatHover", "onAccessExpired", "onAccessUnavailable", "onSelectedObjectUnavailable"];
|
|
985
1063
|
type SeatingChartCallbackProp = (typeof SEATING_CHART_CALLBACK_PROPS)[number];
|
|
986
1064
|
/** The value half of the options, as a wrapper holds it. */
|
|
987
1065
|
type SeatingChartValues = Pick<SeatingChartOptions, SeatingChartValueProp>;
|
|
@@ -1518,7 +1596,11 @@ interface SeatPickerOptions {
|
|
|
1518
1596
|
/** Optional sale guards evaluated after every change and enforced before a
|
|
1519
1597
|
* hold: minimum quantity, consecutive seats, and/or no stranded singles. */
|
|
1520
1598
|
selectionValidators?: PickerSelectionValidator[];
|
|
1521
|
-
/**
|
|
1599
|
+
/**
|
|
1600
|
+
* BCP 47 language for the widget UI. 37 languages ship; omit this and each
|
|
1601
|
+
* buyer gets their own `navigator.languages`, falling back to English.
|
|
1602
|
+
* Read once at render — there is no way to change it on a live chart.
|
|
1603
|
+
*/
|
|
1522
1604
|
locale?: string;
|
|
1523
1605
|
/** Per-key string overrides layered over the active locale. */
|
|
1524
1606
|
messages?: Record<string, string>;
|
|
@@ -1783,6 +1865,22 @@ interface SeatPickerOptions {
|
|
|
1783
1865
|
* widget has already dropped them from the tray.
|
|
1784
1866
|
*/
|
|
1785
1867
|
onSelectedObjectUnavailable?: (event: SelectedObjectUnavailableEvent) => void;
|
|
1868
|
+
/**
|
|
1869
|
+
* A buyer tapped a general-admission area (on the map, or in the tray's
|
|
1870
|
+
* `Areas` list) and the widget is about to open its own quantity prompt.
|
|
1871
|
+
*
|
|
1872
|
+
* Return `true` to take the interaction over completely — the built-in
|
|
1873
|
+
* popover/sheet is suppressed, and the host drives the choice with whatever
|
|
1874
|
+
* UI it likes, landing the result through `prompt.confirm(quantity)` (a plain
|
|
1875
|
+
* number for a single-tier area, or `{ [tierId]: quantity }`) or dropping it
|
|
1876
|
+
* with `prompt.cancel()`. Return anything else (or nothing) and the built-in
|
|
1877
|
+
* prompt opens as usual, so this is also usable as a plain notification.
|
|
1878
|
+
*
|
|
1879
|
+
* `prompt.max` already folds in the area's live availability AND the
|
|
1880
|
+
* order-wide ticket cap minus everything chosen elsewhere; a `confirm` above
|
|
1881
|
+
* it is clamped rather than rejected.
|
|
1882
|
+
*/
|
|
1883
|
+
onGAPrompt?: (prompt: GAPromptRequest) => boolean | void;
|
|
1786
1884
|
onError?: (err: unknown) => void;
|
|
1787
1885
|
}
|
|
1788
1886
|
|
|
@@ -1807,8 +1905,9 @@ interface SeatPickerOptions {
|
|
|
1807
1905
|
* so plain host CSS can restyle too.
|
|
1808
1906
|
*/
|
|
1809
1907
|
|
|
1810
|
-
declare class SeatPicker {
|
|
1811
|
-
|
|
1908
|
+
declare class SeatPicker implements GaPromptPicker {
|
|
1909
|
+
/** @internal Read by pickerGaPrompt for the `onGAPrompt` host hook. */
|
|
1910
|
+
readonly opts: SeatPickerOptions;
|
|
1812
1911
|
private readonly api;
|
|
1813
1912
|
/** Authenticated view media, cached only for this picker lifetime. */
|
|
1814
1913
|
private readonly buyerAssetUrls;
|
|
@@ -1820,17 +1919,17 @@ declare class SeatPicker {
|
|
|
1820
1919
|
private accessEl;
|
|
1821
1920
|
private readonly apiBase;
|
|
1822
1921
|
private readonly controller;
|
|
1823
|
-
|
|
1922
|
+
/** @internal */ maxTickets: number;
|
|
1824
1923
|
/** Exact ticket count required before checkout; null keeps ordinary 1..max behavior. */
|
|
1825
1924
|
private readonly exactTickets;
|
|
1826
1925
|
private lastSelectionValidity;
|
|
1827
1926
|
/** Original host pricing, kept separate from live server offer overrides. */
|
|
1828
1927
|
private readonly hostPricing;
|
|
1829
|
-
|
|
1928
|
+
/** @internal */ root: HTMLDivElement | null;
|
|
1830
1929
|
private mapHost;
|
|
1831
1930
|
private rendered;
|
|
1832
1931
|
private destroyed;
|
|
1833
|
-
|
|
1932
|
+
/** @internal */ els: Record<string, HTMLElement>;
|
|
1834
1933
|
/** Feature 6 anchor regions — positioned flex containers over the map. */
|
|
1835
1934
|
private regions;
|
|
1836
1935
|
private ro;
|
|
@@ -1874,7 +1973,15 @@ declare class SeatPicker {
|
|
|
1874
1973
|
private checkoutPanel;
|
|
1875
1974
|
private extendEl;
|
|
1876
1975
|
private bookedEl;
|
|
1877
|
-
|
|
1976
|
+
/** @internal Pending GA units per (area, tier) — see pickerGaPrompt.ts. */
|
|
1977
|
+
gaQty: GaQtyMap;
|
|
1978
|
+
/** @internal The open quantity prompt (popover or sheet), while one is up. */
|
|
1979
|
+
gaPromptEl: HTMLDivElement | null;
|
|
1980
|
+
/** @internal */ gaPromptReturnFocus: HTMLElement | null;
|
|
1981
|
+
/** @internal Whether the tray's collapsed `Areas` list is open. */
|
|
1982
|
+
gaAreasExpanded: boolean;
|
|
1983
|
+
/** Viewport point of the last map tap — anchors the GA popover. */
|
|
1984
|
+
private lastMapPoint;
|
|
1878
1985
|
private tipEl;
|
|
1879
1986
|
private tipPos;
|
|
1880
1987
|
private confirmEl;
|
|
@@ -1883,7 +1990,7 @@ declare class SeatPicker {
|
|
|
1883
1990
|
private tableDialog;
|
|
1884
1991
|
private tableDialogHeld;
|
|
1885
1992
|
private tableDialogReturnFocus;
|
|
1886
|
-
|
|
1993
|
+
/** @internal */ srEl: HTMLDivElement | null;
|
|
1887
1994
|
private baQty;
|
|
1888
1995
|
private baCat;
|
|
1889
1996
|
/** Optional navigation-zone scope for buyer best-available. */
|
|
@@ -1902,7 +2009,7 @@ declare class SeatPicker {
|
|
|
1902
2009
|
private bestAvailableConfirm;
|
|
1903
2010
|
private releasingHold;
|
|
1904
2011
|
/** Event sales window is closed (read-only load state / live close). */
|
|
1905
|
-
|
|
2012
|
+
/** @internal */ salesClosed: boolean;
|
|
1906
2013
|
/** Every seated category's live availability is 0 (sold-out overlay is up). */
|
|
1907
2014
|
private soldOut;
|
|
1908
2015
|
private soldoutEl;
|
|
@@ -2099,7 +2206,9 @@ declare class SeatPicker {
|
|
|
2099
2206
|
* unknown keys, so this collapses that to `fallback` — while still honoring a
|
|
2100
2207
|
* host `messages` override (which makes `t()` return the override, not the key).
|
|
2101
2208
|
*/
|
|
2102
|
-
|
|
2209
|
+
/** @internal The host's GA prompt takeover, if it supplied one. */
|
|
2210
|
+
get onGAPromptHook(): SeatPickerOptions['onGAPrompt'];
|
|
2211
|
+
/** @internal */ tf(key: string, fallback: string): string;
|
|
2103
2212
|
/** Sold-out overlay — an informational state with no unavailable action. */
|
|
2104
2213
|
private buildSoldoutOverlay;
|
|
2105
2214
|
/**
|
|
@@ -2140,7 +2249,7 @@ declare class SeatPicker {
|
|
|
2140
2249
|
/** Read a resolved --sl-* token value (canvas needs a real color, not var()). */
|
|
2141
2250
|
private cssVar;
|
|
2142
2251
|
/** Motion is progressive enhancement; all state remains legible when reduced. */
|
|
2143
|
-
|
|
2252
|
+
/** @internal */ reducedMotion(): boolean;
|
|
2144
2253
|
private scheduleMotion;
|
|
2145
2254
|
/** Restart one finite CSS animation without leaving a permanent state class. */
|
|
2146
2255
|
private animateOnce;
|
|
@@ -2151,14 +2260,10 @@ declare class SeatPicker {
|
|
|
2151
2260
|
/** Update only the action affordance; selection callbacks must not refire. */
|
|
2152
2261
|
private committedSelection;
|
|
2153
2262
|
private pendingSelectionCount;
|
|
2154
|
-
private heldGACounts;
|
|
2155
|
-
private pendingGACount;
|
|
2156
2263
|
private heldTicketCount;
|
|
2157
|
-
|
|
2264
|
+
/** @internal */ totalTicketCount(): number;
|
|
2158
2265
|
/** Held tickets and standing quantities consume the same order-wide cap. */
|
|
2159
2266
|
private updateSelectionCapacity;
|
|
2160
|
-
private canAddTicket;
|
|
2161
|
-
private pendingGATotal;
|
|
2162
2267
|
private syncCta;
|
|
2163
2268
|
private setCtaPhase;
|
|
2164
2269
|
/** Session-scoped capability key: isolated by API origin and event. */
|
|
@@ -2254,7 +2359,7 @@ declare class SeatPicker {
|
|
|
2254
2359
|
*/
|
|
2255
2360
|
private openSeatView;
|
|
2256
2361
|
private closeSeatView;
|
|
2257
|
-
|
|
2362
|
+
/** @internal */ money(n: number): string;
|
|
2258
2363
|
/**
|
|
2259
2364
|
* Sleep until the offer schedule's next known transition, then re-read.
|
|
2260
2365
|
*
|
|
@@ -2284,7 +2389,7 @@ declare class SeatPicker {
|
|
|
2284
2389
|
* price the widget DISPLAYS or hands off must flow through here — a map
|
|
2285
2390
|
* that shows one price while checkout charges another destroys trust.
|
|
2286
2391
|
*/
|
|
2287
|
-
|
|
2392
|
+
/** @internal */ paidPrice(categoryKey: string | undefined, tierId: string | null | undefined, fallback: number, objectLabel?: string): number;
|
|
2288
2393
|
/** The half of a legend's inputs the rail and the price list share, resolved
|
|
2289
2394
|
* once so the two renderings cannot be given different answers. */
|
|
2290
2395
|
private legendDeps;
|
|
@@ -2309,11 +2414,16 @@ declare class SeatPicker {
|
|
|
2309
2414
|
private liveTimer;
|
|
2310
2415
|
/** A live delta took one of OUR selected (not yet held) seats — evict + tell the buyer. */
|
|
2311
2416
|
private evictTakenSelections;
|
|
2312
|
-
|
|
2417
|
+
/** @internal */ syncTray(): void;
|
|
2313
2418
|
private emitSelectionValidity;
|
|
2314
2419
|
/** Paint the bottom-sheet's collapsed one-liner (pickerTray.ts builds it). */
|
|
2315
2420
|
private renderPeek;
|
|
2316
|
-
|
|
2421
|
+
/**
|
|
2422
|
+
* Release one buyer-visible held LINE. That is one label for a seat, and every
|
|
2423
|
+
* unit label behind a grouped GA line — a buyer who presses × on
|
|
2424
|
+
* "PIT · Adult ×2" means both of them, not one of two identical cards.
|
|
2425
|
+
*/
|
|
2426
|
+
private removeHeldLabels;
|
|
2317
2427
|
private handleChangeSeats;
|
|
2318
2428
|
private handleCta;
|
|
2319
2429
|
private startHoldTimer;
|
|
@@ -2366,7 +2476,10 @@ declare class SeatPicker {
|
|
|
2366
2476
|
/** Assemble the stable {@link CheckoutHandoff} from a hold's server line items. */
|
|
2367
2477
|
private buildHandoff;
|
|
2368
2478
|
private emitHoldChange;
|
|
2369
|
-
|
|
2479
|
+
/** @internal */ toast(msg: string, tone?: 'neutral' | 'success' | 'warning' | 'error', action?: {
|
|
2480
|
+
label: string;
|
|
2481
|
+
onClick: () => void;
|
|
2482
|
+
}): void;
|
|
2370
2483
|
private placeTooltip;
|
|
2371
2484
|
/**
|
|
2372
2485
|
* Row label without the redundant section prefix. Charts commonly name row
|
|
@@ -2591,4 +2704,4 @@ interface AttachPickerFrameOptions {
|
|
|
2591
2704
|
*/
|
|
2592
2705
|
declare function attachPickerFrame(iframe: HTMLIFrameElement, opts?: AttachPickerFrameOptions): () => void;
|
|
2593
2706
|
|
|
2594
|
-
export { ApiError, type AttachPickerFrameOptions, type BestAvailableResult, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SEATING_CHART_CALLBACK_PROPS, SEATING_CHART_HANDLE_METHODS, SEATING_CHART_IDENTITY_PROPS, SEATING_CHART_VALUE_PROPS, type SaleState, SeatPicker, type SeatPickerBestAvailableOptions, type SeatPickerBuyerView, type SeatPickerBuyerViewOptions, type SeatPickerOptions, type SeatPickerPricing, type SeatPickerTheme, SeatingChart, type SeatingChartCallbackProp, type SeatingChartCallbacks, type SeatingChartHandle, type SeatingChartHandleMethod, type SeatingChartIdentityProp, type SeatingChartOptions, type SeatingChartValueProp, type SeatingChartValues, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bindSeatingChartHandle, buildSeatingChartOptions, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, ticketOfferPrices };
|
|
2707
|
+
export { ApiError, type AttachPickerFrameOptions, type BestAvailableResult, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type GAPromptRequest, type GaPromptTier, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SEATING_CHART_CALLBACK_PROPS, SEATING_CHART_HANDLE_METHODS, SEATING_CHART_IDENTITY_PROPS, SEATING_CHART_VALUE_PROPS, type SaleState, SeatPicker, type SeatPickerBestAvailableOptions, type SeatPickerBuyerView, type SeatPickerBuyerViewOptions, type SeatPickerOptions, type SeatPickerPricing, type SeatPickerTheme, SeatingChart, type SeatingChartCallbackProp, type SeatingChartCallbacks, type SeatingChartHandle, type SeatingChartHandleMethod, type SeatingChartIdentityProp, type SeatingChartOptions, type SeatingChartValueProp, type SeatingChartValues, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bindSeatingChartHandle, buildSeatingChartOptions, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, ticketOfferPrices };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PickerSeat, PickerSelectionValidator, RendererViewMode, SeatHoverDetails, PickerSelectionValidity, PickerTransport, PickerMapTheme } from '@seatlayer/core';
|
|
1
|
+
import { PickerSeat, PickerGAArea, PickerSelectionValidator, RendererViewMode, SeatHoverDetails, PickerSelectionValidity, PickerTransport, PickerMapTheme } from '@seatlayer/core';
|
|
2
2
|
export { ExpandedSeat, PickerMapTheme, PickerSelectionValidator, PickerSelectionValidity, PickerSelectionViolation, RendererViewMode, SeatHoverDetails } from '@seatlayer/core';
|
|
3
3
|
export { A as AccessIntentForbidsDetails, a as AccessLinkRecord, b as AccessLinkReveal, c as AccessLinkState, d as AccessLinkStatus, e as AccessLinkStatusRecord, f as ArchiveBlockedDetails, g as AssignmentBuckets, h as AssignmentDropDetails, i as AssignmentResult, B as BucketRow, C as ChannelAccessIntent, j as ChannelAccessSummary, k as ChannelAllocationPage, l as ChannelAttribution, m as ChannelAuditEntry, n as ChannelAuditPage, o as ChannelCounts, p as ChannelListResult, q as ChannelPreviewProjection, r as ChannelRecord, s as ChannelReport, t as ChannelReportLinkRecord, u as ChannelReportLinkReveal, v as ChannelReportResult, w as ChannelReportRow, x as ChannelSeatStatus, y as ChannelState, z as ChannelsCapabilities, D as ChannelsClient, E as ChannelsMode, F as ChannelsModeHost, G as ChannelsRowView, H as ChannelsSeatView, I as ControlRoomActivityEntry, J as ControlRoomSectionMetric, K as ControlRoomSnapshot, L as EventCategoryAssignmentResult, M as EventScopedManageToken, N as EventTableBookingMode, O as EventTableBookingResult, P as IntentSwitchBlockedDetails, Q as InventoryBooking, R as InventoryBookingActivity, S as InventoryBookingDetail, T as InventoryBookingObject, U as InventoryBookingState, V as InventoryBookingsPage, W as InventoryBookingsQuery, X as LogEntry, Y as LogPage, Z as ManageApi, _ as ManageApiError, $ as ReportByStatus, a0 as ReportCategoryMeta, a1 as ReportCategoryRow, a2 as ReportResult, a3 as SeatManager, a4 as SeatManagerActionResult, a5 as SeatManagerActivity, a6 as SeatManagerCapability, a7 as SeatManagerConnection, a8 as SeatManagerFilteredSection, a9 as SeatManagerMode, aa as SeatManagerOptions, ab as SeatManagerSelectionValidity, ac as SeatManagerTallies, ad as SelectionSourceRow } from './channelsMode-2z9HBOAX.js';
|
|
4
4
|
|
|
@@ -506,6 +506,77 @@ interface PubApiOptions {
|
|
|
506
506
|
onObjectUnavailable?: (event: SelectedObjectUnavailableEvent) => void;
|
|
507
507
|
}
|
|
508
508
|
|
|
509
|
+
/**
|
|
510
|
+
* The general-admission quantity prompt, and the GA half of the tray.
|
|
511
|
+
*
|
|
512
|
+
* Before this module a buyer could tap a GA area on the map and nothing at all
|
|
513
|
+
* happened — `onGAClick` reached `PickerController` but the drop-in widget never
|
|
514
|
+
* wired it — while every area on the chart rendered a permanent stepper row in
|
|
515
|
+
* the tray whether or not the buyer wanted one. Twelve areas meant twelve
|
|
516
|
+
* steppers of clutter, and on a phone (where the tray is a collapsed sheet) the
|
|
517
|
+
* only control that existed was the one the buyer could not see.
|
|
518
|
+
*
|
|
519
|
+
* What replaces it is two taps: tap the area, the prompt opens with a quantity
|
|
520
|
+
* already seeded to 1 (never 0 — nobody opens a ticket picker to buy none), and
|
|
521
|
+
* the primary button reads what it will do, priced live: `Add 3 tickets · $45`.
|
|
522
|
+
* The map stays visible behind it — a popover anchored at the tap on a wide
|
|
523
|
+
* layout, a bottom sheet on a narrow one — because the buyer is choosing where
|
|
524
|
+
* to stand, and a centred modal hides exactly the thing being chosen.
|
|
525
|
+
*
|
|
526
|
+
* The tray keeps the stepper rows, but only for areas with a quantity: it is a
|
|
527
|
+
* cart, not a price list. Everything else collapses into one compact `Areas`
|
|
528
|
+
* list, which is the keyboard/screen-reader entry point into the same prompt.
|
|
529
|
+
*
|
|
530
|
+
* Split out of SeatPicker.ts rather than added to it: that file is pinned at its
|
|
531
|
+
* size in the app's file-size ratchet and may not grow.
|
|
532
|
+
*/
|
|
533
|
+
|
|
534
|
+
/** One priced ticket type inside an area. `id` is null for an untiered area. */
|
|
535
|
+
interface GaPromptTier {
|
|
536
|
+
id: string | null;
|
|
537
|
+
label: string;
|
|
538
|
+
price: number;
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* What a host takes over when it returns `true` from `onGAPrompt`. `confirm`
|
|
542
|
+
* accepts a plain number for a single-tier area, or a per-tier record; both
|
|
543
|
+
* land in exactly the same place the built-in prompt's Add button does.
|
|
544
|
+
*/
|
|
545
|
+
interface GAPromptRequest {
|
|
546
|
+
area: PickerGAArea;
|
|
547
|
+
/** Quantities already chosen here, per tier id (`''` for an untiered area). */
|
|
548
|
+
selected: Record<string, number>;
|
|
549
|
+
min: number;
|
|
550
|
+
/** min(units still free, order cap − tickets chosen elsewhere). */
|
|
551
|
+
max: number;
|
|
552
|
+
tiers: GaPromptTier[];
|
|
553
|
+
confirm(quantity: number | Record<string, number>): void;
|
|
554
|
+
cancel(): void;
|
|
555
|
+
}
|
|
556
|
+
/** Per (area, tier) pending quantities. A `null` tier key is an untiered area. */
|
|
557
|
+
type GaQtyMap = Map<string, Map<string | null, number>>;
|
|
558
|
+
/** The slice of SeatPicker this module drives. Everything else stays private. */
|
|
559
|
+
interface GaPromptPicker {
|
|
560
|
+
root: HTMLDivElement | null;
|
|
561
|
+
els: Record<string, HTMLElement>;
|
|
562
|
+
srEl: HTMLDivElement | null;
|
|
563
|
+
gaQty: GaQtyMap;
|
|
564
|
+
maxTickets: number;
|
|
565
|
+
salesClosed: boolean;
|
|
566
|
+
gaPromptEl: HTMLDivElement | null;
|
|
567
|
+
gaPromptReturnFocus: HTMLElement | null;
|
|
568
|
+
gaAreasExpanded: boolean;
|
|
569
|
+
money(amount: number): string;
|
|
570
|
+
paidPrice(categoryKey: string | undefined, tierId: string | null | undefined, fallback: number, objectLabel?: string): number;
|
|
571
|
+
tf(key: string, fallback: string): string;
|
|
572
|
+
toast(message: string, tone?: 'error' | 'success' | 'warning' | 'neutral'): void;
|
|
573
|
+
reducedMotion(): boolean;
|
|
574
|
+
syncTray(): void;
|
|
575
|
+
/** Tickets in the order right now, held + selected seats + every GA quantity. */
|
|
576
|
+
totalTicketCount(): number;
|
|
577
|
+
onGAPromptHook?: ((prompt: GAPromptRequest) => boolean | void) | undefined;
|
|
578
|
+
}
|
|
579
|
+
|
|
509
580
|
/**
|
|
510
581
|
* SeatingChart — the embeddable buyer picker.
|
|
511
582
|
*
|
|
@@ -580,7 +651,7 @@ interface SeatingChartOptions {
|
|
|
580
651
|
selectionValidators?: PickerSelectionValidator[];
|
|
581
652
|
/**
|
|
582
653
|
* BCP 47 language for the widget UI — `'de'`, `'es-MX'`, etc. Falls back to
|
|
583
|
-
* the browser language, then English.
|
|
654
|
+
* the browser language, then English. 37 languages ship. The German
|
|
584
655
|
* bundle (etc.) is fetched on demand so unused languages cost nothing.
|
|
585
656
|
*/
|
|
586
657
|
locale?: string;
|
|
@@ -628,6 +699,13 @@ interface SeatingChartOptions {
|
|
|
628
699
|
onHoldRestored?: (result: HoldResult) => void;
|
|
629
700
|
onHoldExpired?: () => void;
|
|
630
701
|
onGAClick?: (area: GAAreaAvailability) => void;
|
|
702
|
+
/**
|
|
703
|
+
* Mirror of {@link SeatPickerOptions.onGAPrompt}. The low-level chart draws no
|
|
704
|
+
* quantity UI of its own, so this fires purely as the "the buyer wants to pick
|
|
705
|
+
* a quantity here" signal, with the same pre-computed `min`/`max`/`tiers` the
|
|
706
|
+
* full widget would have used; the return value is accepted and ignored.
|
|
707
|
+
*/
|
|
708
|
+
onGAPrompt?: (prompt: GAPromptRequest) => boolean | void;
|
|
631
709
|
/**
|
|
632
710
|
* The buyer access session lapsed. `refreshed` says whether the provider
|
|
633
711
|
* already recovered it — false means private inventory is now unavailable and
|
|
@@ -981,7 +1059,7 @@ type SeatingChartIdentityProp = (typeof SEATING_CHART_IDENTITY_PROPS)[number];
|
|
|
981
1059
|
declare const SEATING_CHART_VALUE_PROPS: readonly ["event", "apiBase", "maxSelection", "numberOfPlacesToSelect", "selectionValidators", "publicKey", "locale", "currency", "colorblindSafe", "initialView", "errorDisplay", "selectedObjects", "selectableObjects", "messages", "seatTooltip", "buyerAccessTokenProvider", "buyerAccessToken"];
|
|
982
1060
|
type SeatingChartValueProp = (typeof SEATING_CHART_VALUE_PROPS)[number];
|
|
983
1061
|
/** Every callback option a wrapper wires to its own event mechanism. */
|
|
984
|
-
declare const SEATING_CHART_CALLBACK_PROPS: readonly ["onSelectionChange", "onSelectionValidityChange", "onSelectionValid", "onSelectionInvalid", "onSelectionLimit", "onHold", "onHoldRestored", "onHoldExpired", "onGAClick", "onError", "onDeckTap", "onHint", "onSeatHover", "onAccessExpired", "onAccessUnavailable", "onSelectedObjectUnavailable"];
|
|
1062
|
+
declare const SEATING_CHART_CALLBACK_PROPS: readonly ["onSelectionChange", "onSelectionValidityChange", "onSelectionValid", "onSelectionInvalid", "onSelectionLimit", "onHold", "onHoldRestored", "onHoldExpired", "onGAClick", "onGAPrompt", "onError", "onDeckTap", "onHint", "onSeatHover", "onAccessExpired", "onAccessUnavailable", "onSelectedObjectUnavailable"];
|
|
985
1063
|
type SeatingChartCallbackProp = (typeof SEATING_CHART_CALLBACK_PROPS)[number];
|
|
986
1064
|
/** The value half of the options, as a wrapper holds it. */
|
|
987
1065
|
type SeatingChartValues = Pick<SeatingChartOptions, SeatingChartValueProp>;
|
|
@@ -1518,7 +1596,11 @@ interface SeatPickerOptions {
|
|
|
1518
1596
|
/** Optional sale guards evaluated after every change and enforced before a
|
|
1519
1597
|
* hold: minimum quantity, consecutive seats, and/or no stranded singles. */
|
|
1520
1598
|
selectionValidators?: PickerSelectionValidator[];
|
|
1521
|
-
/**
|
|
1599
|
+
/**
|
|
1600
|
+
* BCP 47 language for the widget UI. 37 languages ship; omit this and each
|
|
1601
|
+
* buyer gets their own `navigator.languages`, falling back to English.
|
|
1602
|
+
* Read once at render — there is no way to change it on a live chart.
|
|
1603
|
+
*/
|
|
1522
1604
|
locale?: string;
|
|
1523
1605
|
/** Per-key string overrides layered over the active locale. */
|
|
1524
1606
|
messages?: Record<string, string>;
|
|
@@ -1783,6 +1865,22 @@ interface SeatPickerOptions {
|
|
|
1783
1865
|
* widget has already dropped them from the tray.
|
|
1784
1866
|
*/
|
|
1785
1867
|
onSelectedObjectUnavailable?: (event: SelectedObjectUnavailableEvent) => void;
|
|
1868
|
+
/**
|
|
1869
|
+
* A buyer tapped a general-admission area (on the map, or in the tray's
|
|
1870
|
+
* `Areas` list) and the widget is about to open its own quantity prompt.
|
|
1871
|
+
*
|
|
1872
|
+
* Return `true` to take the interaction over completely — the built-in
|
|
1873
|
+
* popover/sheet is suppressed, and the host drives the choice with whatever
|
|
1874
|
+
* UI it likes, landing the result through `prompt.confirm(quantity)` (a plain
|
|
1875
|
+
* number for a single-tier area, or `{ [tierId]: quantity }`) or dropping it
|
|
1876
|
+
* with `prompt.cancel()`. Return anything else (or nothing) and the built-in
|
|
1877
|
+
* prompt opens as usual, so this is also usable as a plain notification.
|
|
1878
|
+
*
|
|
1879
|
+
* `prompt.max` already folds in the area's live availability AND the
|
|
1880
|
+
* order-wide ticket cap minus everything chosen elsewhere; a `confirm` above
|
|
1881
|
+
* it is clamped rather than rejected.
|
|
1882
|
+
*/
|
|
1883
|
+
onGAPrompt?: (prompt: GAPromptRequest) => boolean | void;
|
|
1786
1884
|
onError?: (err: unknown) => void;
|
|
1787
1885
|
}
|
|
1788
1886
|
|
|
@@ -1807,8 +1905,9 @@ interface SeatPickerOptions {
|
|
|
1807
1905
|
* so plain host CSS can restyle too.
|
|
1808
1906
|
*/
|
|
1809
1907
|
|
|
1810
|
-
declare class SeatPicker {
|
|
1811
|
-
|
|
1908
|
+
declare class SeatPicker implements GaPromptPicker {
|
|
1909
|
+
/** @internal Read by pickerGaPrompt for the `onGAPrompt` host hook. */
|
|
1910
|
+
readonly opts: SeatPickerOptions;
|
|
1812
1911
|
private readonly api;
|
|
1813
1912
|
/** Authenticated view media, cached only for this picker lifetime. */
|
|
1814
1913
|
private readonly buyerAssetUrls;
|
|
@@ -1820,17 +1919,17 @@ declare class SeatPicker {
|
|
|
1820
1919
|
private accessEl;
|
|
1821
1920
|
private readonly apiBase;
|
|
1822
1921
|
private readonly controller;
|
|
1823
|
-
|
|
1922
|
+
/** @internal */ maxTickets: number;
|
|
1824
1923
|
/** Exact ticket count required before checkout; null keeps ordinary 1..max behavior. */
|
|
1825
1924
|
private readonly exactTickets;
|
|
1826
1925
|
private lastSelectionValidity;
|
|
1827
1926
|
/** Original host pricing, kept separate from live server offer overrides. */
|
|
1828
1927
|
private readonly hostPricing;
|
|
1829
|
-
|
|
1928
|
+
/** @internal */ root: HTMLDivElement | null;
|
|
1830
1929
|
private mapHost;
|
|
1831
1930
|
private rendered;
|
|
1832
1931
|
private destroyed;
|
|
1833
|
-
|
|
1932
|
+
/** @internal */ els: Record<string, HTMLElement>;
|
|
1834
1933
|
/** Feature 6 anchor regions — positioned flex containers over the map. */
|
|
1835
1934
|
private regions;
|
|
1836
1935
|
private ro;
|
|
@@ -1874,7 +1973,15 @@ declare class SeatPicker {
|
|
|
1874
1973
|
private checkoutPanel;
|
|
1875
1974
|
private extendEl;
|
|
1876
1975
|
private bookedEl;
|
|
1877
|
-
|
|
1976
|
+
/** @internal Pending GA units per (area, tier) — see pickerGaPrompt.ts. */
|
|
1977
|
+
gaQty: GaQtyMap;
|
|
1978
|
+
/** @internal The open quantity prompt (popover or sheet), while one is up. */
|
|
1979
|
+
gaPromptEl: HTMLDivElement | null;
|
|
1980
|
+
/** @internal */ gaPromptReturnFocus: HTMLElement | null;
|
|
1981
|
+
/** @internal Whether the tray's collapsed `Areas` list is open. */
|
|
1982
|
+
gaAreasExpanded: boolean;
|
|
1983
|
+
/** Viewport point of the last map tap — anchors the GA popover. */
|
|
1984
|
+
private lastMapPoint;
|
|
1878
1985
|
private tipEl;
|
|
1879
1986
|
private tipPos;
|
|
1880
1987
|
private confirmEl;
|
|
@@ -1883,7 +1990,7 @@ declare class SeatPicker {
|
|
|
1883
1990
|
private tableDialog;
|
|
1884
1991
|
private tableDialogHeld;
|
|
1885
1992
|
private tableDialogReturnFocus;
|
|
1886
|
-
|
|
1993
|
+
/** @internal */ srEl: HTMLDivElement | null;
|
|
1887
1994
|
private baQty;
|
|
1888
1995
|
private baCat;
|
|
1889
1996
|
/** Optional navigation-zone scope for buyer best-available. */
|
|
@@ -1902,7 +2009,7 @@ declare class SeatPicker {
|
|
|
1902
2009
|
private bestAvailableConfirm;
|
|
1903
2010
|
private releasingHold;
|
|
1904
2011
|
/** Event sales window is closed (read-only load state / live close). */
|
|
1905
|
-
|
|
2012
|
+
/** @internal */ salesClosed: boolean;
|
|
1906
2013
|
/** Every seated category's live availability is 0 (sold-out overlay is up). */
|
|
1907
2014
|
private soldOut;
|
|
1908
2015
|
private soldoutEl;
|
|
@@ -2099,7 +2206,9 @@ declare class SeatPicker {
|
|
|
2099
2206
|
* unknown keys, so this collapses that to `fallback` — while still honoring a
|
|
2100
2207
|
* host `messages` override (which makes `t()` return the override, not the key).
|
|
2101
2208
|
*/
|
|
2102
|
-
|
|
2209
|
+
/** @internal The host's GA prompt takeover, if it supplied one. */
|
|
2210
|
+
get onGAPromptHook(): SeatPickerOptions['onGAPrompt'];
|
|
2211
|
+
/** @internal */ tf(key: string, fallback: string): string;
|
|
2103
2212
|
/** Sold-out overlay — an informational state with no unavailable action. */
|
|
2104
2213
|
private buildSoldoutOverlay;
|
|
2105
2214
|
/**
|
|
@@ -2140,7 +2249,7 @@ declare class SeatPicker {
|
|
|
2140
2249
|
/** Read a resolved --sl-* token value (canvas needs a real color, not var()). */
|
|
2141
2250
|
private cssVar;
|
|
2142
2251
|
/** Motion is progressive enhancement; all state remains legible when reduced. */
|
|
2143
|
-
|
|
2252
|
+
/** @internal */ reducedMotion(): boolean;
|
|
2144
2253
|
private scheduleMotion;
|
|
2145
2254
|
/** Restart one finite CSS animation without leaving a permanent state class. */
|
|
2146
2255
|
private animateOnce;
|
|
@@ -2151,14 +2260,10 @@ declare class SeatPicker {
|
|
|
2151
2260
|
/** Update only the action affordance; selection callbacks must not refire. */
|
|
2152
2261
|
private committedSelection;
|
|
2153
2262
|
private pendingSelectionCount;
|
|
2154
|
-
private heldGACounts;
|
|
2155
|
-
private pendingGACount;
|
|
2156
2263
|
private heldTicketCount;
|
|
2157
|
-
|
|
2264
|
+
/** @internal */ totalTicketCount(): number;
|
|
2158
2265
|
/** Held tickets and standing quantities consume the same order-wide cap. */
|
|
2159
2266
|
private updateSelectionCapacity;
|
|
2160
|
-
private canAddTicket;
|
|
2161
|
-
private pendingGATotal;
|
|
2162
2267
|
private syncCta;
|
|
2163
2268
|
private setCtaPhase;
|
|
2164
2269
|
/** Session-scoped capability key: isolated by API origin and event. */
|
|
@@ -2254,7 +2359,7 @@ declare class SeatPicker {
|
|
|
2254
2359
|
*/
|
|
2255
2360
|
private openSeatView;
|
|
2256
2361
|
private closeSeatView;
|
|
2257
|
-
|
|
2362
|
+
/** @internal */ money(n: number): string;
|
|
2258
2363
|
/**
|
|
2259
2364
|
* Sleep until the offer schedule's next known transition, then re-read.
|
|
2260
2365
|
*
|
|
@@ -2284,7 +2389,7 @@ declare class SeatPicker {
|
|
|
2284
2389
|
* price the widget DISPLAYS or hands off must flow through here — a map
|
|
2285
2390
|
* that shows one price while checkout charges another destroys trust.
|
|
2286
2391
|
*/
|
|
2287
|
-
|
|
2392
|
+
/** @internal */ paidPrice(categoryKey: string | undefined, tierId: string | null | undefined, fallback: number, objectLabel?: string): number;
|
|
2288
2393
|
/** The half of a legend's inputs the rail and the price list share, resolved
|
|
2289
2394
|
* once so the two renderings cannot be given different answers. */
|
|
2290
2395
|
private legendDeps;
|
|
@@ -2309,11 +2414,16 @@ declare class SeatPicker {
|
|
|
2309
2414
|
private liveTimer;
|
|
2310
2415
|
/** A live delta took one of OUR selected (not yet held) seats — evict + tell the buyer. */
|
|
2311
2416
|
private evictTakenSelections;
|
|
2312
|
-
|
|
2417
|
+
/** @internal */ syncTray(): void;
|
|
2313
2418
|
private emitSelectionValidity;
|
|
2314
2419
|
/** Paint the bottom-sheet's collapsed one-liner (pickerTray.ts builds it). */
|
|
2315
2420
|
private renderPeek;
|
|
2316
|
-
|
|
2421
|
+
/**
|
|
2422
|
+
* Release one buyer-visible held LINE. That is one label for a seat, and every
|
|
2423
|
+
* unit label behind a grouped GA line — a buyer who presses × on
|
|
2424
|
+
* "PIT · Adult ×2" means both of them, not one of two identical cards.
|
|
2425
|
+
*/
|
|
2426
|
+
private removeHeldLabels;
|
|
2317
2427
|
private handleChangeSeats;
|
|
2318
2428
|
private handleCta;
|
|
2319
2429
|
private startHoldTimer;
|
|
@@ -2366,7 +2476,10 @@ declare class SeatPicker {
|
|
|
2366
2476
|
/** Assemble the stable {@link CheckoutHandoff} from a hold's server line items. */
|
|
2367
2477
|
private buildHandoff;
|
|
2368
2478
|
private emitHoldChange;
|
|
2369
|
-
|
|
2479
|
+
/** @internal */ toast(msg: string, tone?: 'neutral' | 'success' | 'warning' | 'error', action?: {
|
|
2480
|
+
label: string;
|
|
2481
|
+
onClick: () => void;
|
|
2482
|
+
}): void;
|
|
2370
2483
|
private placeTooltip;
|
|
2371
2484
|
/**
|
|
2372
2485
|
* Row label without the redundant section prefix. Charts commonly name row
|
|
@@ -2591,4 +2704,4 @@ interface AttachPickerFrameOptions {
|
|
|
2591
2704
|
*/
|
|
2592
2705
|
declare function attachPickerFrame(iframe: HTMLIFrameElement, opts?: AttachPickerFrameOptions): () => void;
|
|
2593
2706
|
|
|
2594
|
-
export { ApiError, type AttachPickerFrameOptions, type BestAvailableResult, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SEATING_CHART_CALLBACK_PROPS, SEATING_CHART_HANDLE_METHODS, SEATING_CHART_IDENTITY_PROPS, SEATING_CHART_VALUE_PROPS, type SaleState, SeatPicker, type SeatPickerBestAvailableOptions, type SeatPickerBuyerView, type SeatPickerBuyerViewOptions, type SeatPickerOptions, type SeatPickerPricing, type SeatPickerTheme, SeatingChart, type SeatingChartCallbackProp, type SeatingChartCallbacks, type SeatingChartHandle, type SeatingChartHandleMethod, type SeatingChartIdentityProp, type SeatingChartOptions, type SeatingChartValueProp, type SeatingChartValues, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bindSeatingChartHandle, buildSeatingChartOptions, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, ticketOfferPrices };
|
|
2707
|
+
export { ApiError, type AttachPickerFrameOptions, type BestAvailableResult, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type GAPromptRequest, type GaPromptTier, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SEATING_CHART_CALLBACK_PROPS, SEATING_CHART_HANDLE_METHODS, SEATING_CHART_IDENTITY_PROPS, SEATING_CHART_VALUE_PROPS, type SaleState, SeatPicker, type SeatPickerBestAvailableOptions, type SeatPickerBuyerView, type SeatPickerBuyerViewOptions, type SeatPickerOptions, type SeatPickerPricing, type SeatPickerTheme, SeatingChart, type SeatingChartCallbackProp, type SeatingChartCallbacks, type SeatingChartHandle, type SeatingChartHandleMethod, type SeatingChartIdentityProp, type SeatingChartOptions, type SeatingChartValueProp, type SeatingChartValues, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bindSeatingChartHandle, buildSeatingChartOptions, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, ticketOfferPrices };
|