@seatlayer/js 0.54.0 → 0.56.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/README.md +19 -5
- package/dist/{channelsMode-BX7s9bUl.d.cts → channelsMode-CFxx1jp3.d.cts} +162 -5
- package/dist/{channelsMode-BX7s9bUl.d.ts → channelsMode-CFxx1jp3.d.ts} +162 -5
- package/dist/{channelsMode-RUNPEHKD.js → channelsMode-XA5FM2LX.js} +1 -1
- package/dist/{chunk-7F6RSJRL.js → chunk-VCVUAOOK.js} +77 -46
- package/dist/index.cjs +5 -5
- package/dist/index.d.cts +116 -11
- package/dist/index.d.ts +116 -11
- package/dist/index.js +4 -4
- package/dist/manager.cjs +243 -136
- package/dist/manager.d.cts +2 -2
- package/dist/manager.d.ts +2 -2
- package/dist/manager.js +124 -48
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { PickerSeat, RendererViewMode, SeatHoverDetails, PickerTransport, PickerMapTheme } from '@seatlayer/core';
|
|
2
|
-
export { ExpandedSeat, PickerMapTheme, RendererViewMode, SeatHoverDetails } from '@seatlayer/core';
|
|
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
|
|
1
|
+
import { PickerSeat, RendererViewMode, SeatHoverDetails, PickerSelectionValidity, PickerTransport, PickerMapTheme } from '@seatlayer/core';
|
|
2
|
+
export { ExpandedSeat, PickerMapTheme, PickerSelectionValidity, RendererViewMode, SeatHoverDetails } from '@seatlayer/core';
|
|
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-CFxx1jp3.cjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Buyer access context — the browser half of the Sales Channels contract
|
|
@@ -393,6 +393,8 @@ interface HoldLineItem {
|
|
|
393
393
|
unitPrice: number;
|
|
394
394
|
currency: string;
|
|
395
395
|
quantity?: number;
|
|
396
|
+
/** Channel pricing revision captured when this line used an override. */
|
|
397
|
+
channelPricingVersion?: number | null;
|
|
396
398
|
}
|
|
397
399
|
declare class ApiError extends Error {
|
|
398
400
|
status: number;
|
|
@@ -568,6 +570,12 @@ interface SeatingChartOptions {
|
|
|
568
570
|
buyerAccessToken?: string | BuyerAccessToken;
|
|
569
571
|
/** Max seats selectable at once (default 10). */
|
|
570
572
|
maxSelection?: number;
|
|
573
|
+
/** Object ids or public labels selected after live availability is loaded. */
|
|
574
|
+
selectedObjects?: string[];
|
|
575
|
+
/** Object ids or public labels the buyer may select. Omit for all free objects. */
|
|
576
|
+
selectableObjects?: string[] | null;
|
|
577
|
+
/** Require exactly this many seated/table guest units before the selection is valid. */
|
|
578
|
+
numberOfPlacesToSelect?: number;
|
|
571
579
|
/**
|
|
572
580
|
* BCP 47 language for the widget UI — `'de'`, `'es-MX'`, etc. Falls back to
|
|
573
581
|
* the browser language, then English. Built-in: en, es, de, fr. The German
|
|
@@ -605,6 +613,14 @@ interface SeatingChartOptions {
|
|
|
605
613
|
*/
|
|
606
614
|
onSeatHover?: (details: SeatHoverDetails | null) => void;
|
|
607
615
|
onSelectionChange?: (seats: SelectedSeat[]) => void;
|
|
616
|
+
/** Exact-count state after each selection change. */
|
|
617
|
+
onSelectionValidityChange?: (state: PickerSelectionValidity) => void;
|
|
618
|
+
/** The exact configured count has just been reached. */
|
|
619
|
+
onSelectionValid?: (seats: SelectedSeat[]) => void;
|
|
620
|
+
/** The current selection does not match the configured exact count. */
|
|
621
|
+
onSelectionInvalid?: (state: PickerSelectionValidity) => void;
|
|
622
|
+
/** A manual or programmatic selection reached the active maximum. */
|
|
623
|
+
onSelectionLimit?: (maxSelection: number) => void;
|
|
608
624
|
onHold?: (result: HoldResult) => void;
|
|
609
625
|
/** A prior active hold was restored with resumeHold(). */
|
|
610
626
|
onHoldRestored?: (result: HoldResult) => void;
|
|
@@ -701,6 +717,22 @@ declare class SeatingChart {
|
|
|
701
717
|
getMode(): 'live' | 'test' | null;
|
|
702
718
|
/** Current selection with prices resolved from the chart categories. */
|
|
703
719
|
getSelection(): SelectedSeat[];
|
|
720
|
+
/** Select free objects by engine id or public label. Returns newly selected objects. */
|
|
721
|
+
selectObjects(objects: string[]): SelectedSeat[];
|
|
722
|
+
/** Deselect objects by engine id or public label. */
|
|
723
|
+
deselectObjects(objects: string[]): void;
|
|
724
|
+
/** Clear every unheld selection. */
|
|
725
|
+
clearSelection(): void;
|
|
726
|
+
/** Select every selectable object in the named categories. */
|
|
727
|
+
selectCategories(categoryKeys: string[]): SelectedSeat[];
|
|
728
|
+
/** Deselect every selected object in the named categories. */
|
|
729
|
+
deselectCategories(categoryKeys: string[]): void;
|
|
730
|
+
/** Replace the buyer-selectable object allow-list without remounting. */
|
|
731
|
+
setSelectableObjects(objects: string[] | null): void;
|
|
732
|
+
/** Change the selection cap without remounting. */
|
|
733
|
+
setMaxSelection(maxSelection: number): void;
|
|
734
|
+
/** Current exact-count validity, or null when no exact count was configured. */
|
|
735
|
+
getSelectionValidity(): PickerSelectionValidity | null;
|
|
704
736
|
/** Hold the current selection. Resolves the hold, or null on a 409 conflict. */
|
|
705
737
|
hold(options?: {
|
|
706
738
|
ttlMs?: number;
|
|
@@ -871,6 +903,22 @@ interface SeatingChartHandle {
|
|
|
871
903
|
releaseLabels(labels: string[]): Promise<boolean>;
|
|
872
904
|
/** The current selection, with prices resolved from the chart categories. */
|
|
873
905
|
getSelection(): SelectedSeat[];
|
|
906
|
+
/** Select free objects by engine id or public label. */
|
|
907
|
+
selectObjects(objects: string[]): SelectedSeat[];
|
|
908
|
+
/** Deselect objects by engine id or public label. */
|
|
909
|
+
deselectObjects(objects: string[]): void;
|
|
910
|
+
/** Clear every unheld selection. */
|
|
911
|
+
clearSelection(): void;
|
|
912
|
+
/** Select every selectable object in the named categories. */
|
|
913
|
+
selectCategories(categoryKeys: string[]): SelectedSeat[];
|
|
914
|
+
/** Deselect every selected object in the named categories. */
|
|
915
|
+
deselectCategories(categoryKeys: string[]): void;
|
|
916
|
+
/** Replace the buyer-selectable object allow-list without rebuilding. */
|
|
917
|
+
setSelectableObjects(objects: string[] | null): void;
|
|
918
|
+
/** Change the selection cap without rebuilding. */
|
|
919
|
+
setMaxSelection(maxSelection: number): void;
|
|
920
|
+
/** Current exact-count validity, or null when no exact count was configured. */
|
|
921
|
+
getSelectionValidity(): PickerSelectionValidity | null;
|
|
874
922
|
/**
|
|
875
923
|
* Choose a ticket tier for a selected seat (e.g. Adult → Child). Available
|
|
876
924
|
* `tiers` are on each `SelectedSeat`; `tierId=null` reverts to the default.
|
|
@@ -904,7 +952,7 @@ interface SeatingChartHandle {
|
|
|
904
952
|
* Every method a wrapper must forward. The wrappers build their handle by
|
|
905
953
|
* iterating this, so the list IS the contract rather than a description of it.
|
|
906
954
|
*/
|
|
907
|
-
declare const SEATING_CHART_HANDLE_METHODS: readonly ["hold", "resumeHold", "getCurrentHold", "getGAAreas", "holdGA", "bestAvailable", "release", "releaseLabels", "getSelection", "setSeatTier", "getFloors", "setFloor", "setColorblindSafe", "zoomIn", "zoomOut", "zoomToFit", "refreshAccess"];
|
|
955
|
+
declare const SEATING_CHART_HANDLE_METHODS: readonly ["hold", "resumeHold", "getCurrentHold", "getGAAreas", "holdGA", "bestAvailable", "release", "releaseLabels", "getSelection", "selectObjects", "deselectObjects", "clearSelection", "selectCategories", "deselectCategories", "setSelectableObjects", "setMaxSelection", "getSelectionValidity", "setSeatTier", "getFloors", "setFloor", "setColorblindSafe", "zoomIn", "zoomOut", "zoomToFit", "refreshAccess"];
|
|
908
956
|
type SeatingChartHandleMethod = (typeof SEATING_CHART_HANDLE_METHODS)[number];
|
|
909
957
|
/**
|
|
910
958
|
* Build the forwarding object every wrapper exposes.
|
|
@@ -925,13 +973,13 @@ declare function bindSeatingChartHandle(getInstance: () => SeatingChart | null):
|
|
|
925
973
|
* two behaviours. React already treated them this way; Vue and Angular did not
|
|
926
974
|
* expose them at all.
|
|
927
975
|
*/
|
|
928
|
-
declare const SEATING_CHART_IDENTITY_PROPS: readonly ["event", "apiBase", "maxSelection", "publicKey", "locale", "currency", "colorblindSafe", "initialView", "errorDisplay"];
|
|
976
|
+
declare const SEATING_CHART_IDENTITY_PROPS: readonly ["event", "apiBase", "maxSelection", "numberOfPlacesToSelect", "publicKey", "locale", "currency", "colorblindSafe", "initialView", "errorDisplay"];
|
|
929
977
|
type SeatingChartIdentityProp = (typeof SEATING_CHART_IDENTITY_PROPS)[number];
|
|
930
978
|
/** Non-callback options a wrapper accepts as props/inputs and passes straight through. */
|
|
931
|
-
declare const SEATING_CHART_VALUE_PROPS: readonly ["event", "apiBase", "maxSelection", "publicKey", "locale", "currency", "colorblindSafe", "initialView", "errorDisplay", "messages", "seatTooltip", "buyerAccessTokenProvider", "buyerAccessToken"];
|
|
979
|
+
declare const SEATING_CHART_VALUE_PROPS: readonly ["event", "apiBase", "maxSelection", "numberOfPlacesToSelect", "publicKey", "locale", "currency", "colorblindSafe", "initialView", "errorDisplay", "selectedObjects", "selectableObjects", "messages", "seatTooltip", "buyerAccessTokenProvider", "buyerAccessToken"];
|
|
932
980
|
type SeatingChartValueProp = (typeof SEATING_CHART_VALUE_PROPS)[number];
|
|
933
981
|
/** Every callback option a wrapper wires to its own event mechanism. */
|
|
934
|
-
declare const SEATING_CHART_CALLBACK_PROPS: readonly ["onSelectionChange", "onHold", "onHoldRestored", "onHoldExpired", "onGAClick", "onError", "onDeckTap", "onHint", "onSeatHover", "onAccessExpired", "onAccessUnavailable", "onSelectedObjectUnavailable"];
|
|
982
|
+
declare const SEATING_CHART_CALLBACK_PROPS: readonly ["onSelectionChange", "onSelectionValidityChange", "onSelectionValid", "onSelectionInvalid", "onSelectionLimit", "onHold", "onHoldRestored", "onHoldExpired", "onGAClick", "onError", "onDeckTap", "onHint", "onSeatHover", "onAccessExpired", "onAccessUnavailable", "onSelectedObjectUnavailable"];
|
|
935
983
|
type SeatingChartCallbackProp = (typeof SEATING_CHART_CALLBACK_PROPS)[number];
|
|
936
984
|
/** The value half of the options, as a wrapper holds it. */
|
|
937
985
|
type SeatingChartValues = Pick<SeatingChartOptions, SeatingChartValueProp>;
|
|
@@ -1251,6 +1299,24 @@ interface TicketOfferPrice {
|
|
|
1251
1299
|
startsAt?: number | null;
|
|
1252
1300
|
endsAt?: number | null;
|
|
1253
1301
|
}
|
|
1302
|
+
interface ChannelPriceOverride {
|
|
1303
|
+
categoryKey: string;
|
|
1304
|
+
tierId: string | null;
|
|
1305
|
+
price: number;
|
|
1306
|
+
}
|
|
1307
|
+
/** Pricing configuration projected only for the private channels in this grant. */
|
|
1308
|
+
interface BuyerChannelPricing {
|
|
1309
|
+
assignmentVersion: number;
|
|
1310
|
+
channels: Array<{
|
|
1311
|
+
channelId: string;
|
|
1312
|
+
pricingVersion: number;
|
|
1313
|
+
priceOverrides: ChannelPriceOverride[];
|
|
1314
|
+
}>;
|
|
1315
|
+
objects: Array<{
|
|
1316
|
+
label: string;
|
|
1317
|
+
channelId: string;
|
|
1318
|
+
}>;
|
|
1319
|
+
}
|
|
1254
1320
|
interface TicketOfferAvailability {
|
|
1255
1321
|
state: SaleState;
|
|
1256
1322
|
/** Currently advertised offer price, in minor units. */
|
|
@@ -1263,6 +1329,7 @@ interface TicketOfferAvailability {
|
|
|
1263
1329
|
upcoming: TicketOfferSummary | null;
|
|
1264
1330
|
/** Server-resolved active offer prices by category, in major units. */
|
|
1265
1331
|
prices: TicketOfferPrice[];
|
|
1332
|
+
channelPricing: BuyerChannelPricing | null;
|
|
1266
1333
|
}
|
|
1267
1334
|
/** Parse a public offer payload without repairing a half-understood price. */
|
|
1268
1335
|
declare function parseTicketOfferAvailability(body: unknown): TicketOfferAvailability | null;
|
|
@@ -1440,6 +1507,12 @@ interface SeatPickerOptions {
|
|
|
1440
1507
|
buyerAccessToken?: string | BuyerAccessToken;
|
|
1441
1508
|
/** Max seats selectable at once (default 10). */
|
|
1442
1509
|
maxSelection?: number;
|
|
1510
|
+
/** Object ids or public labels selected after live availability is loaded. */
|
|
1511
|
+
selectedObjects?: string[];
|
|
1512
|
+
/** Object ids or public labels the buyer may select. Omit for all free objects. */
|
|
1513
|
+
selectableObjects?: string[] | null;
|
|
1514
|
+
/** Require exactly this many total seated/table/GA guest units before checkout. */
|
|
1515
|
+
numberOfPlacesToSelect?: number;
|
|
1443
1516
|
/** BCP 47 language for the widget UI. Built-in: en, es, de, fr. */
|
|
1444
1517
|
locale?: string;
|
|
1445
1518
|
/** Per-key string overrides layered over the active locale. */
|
|
@@ -1665,6 +1738,14 @@ interface SeatPickerOptions {
|
|
|
1665
1738
|
onBooked?: (handoff: CheckoutHandoff) => void;
|
|
1666
1739
|
/** Selection changed (tap or best-available). */
|
|
1667
1740
|
onSelectionChange?: (seats: PickerSeat[]) => void;
|
|
1741
|
+
/** Exact-count state after each selection change. */
|
|
1742
|
+
onSelectionValidityChange?: (state: PickerSelectionValidity) => void;
|
|
1743
|
+
/** The configured exact ticket count has just been reached. */
|
|
1744
|
+
onSelectionValid?: (seats: PickerSeat[]) => void;
|
|
1745
|
+
/** The current selection does not match the configured exact ticket count. */
|
|
1746
|
+
onSelectionInvalid?: (state: PickerSelectionValidity) => void;
|
|
1747
|
+
/** A selection attempt reached the active maximum. */
|
|
1748
|
+
onSelectionLimit?: (maxSelection: number) => void;
|
|
1668
1749
|
/**
|
|
1669
1750
|
* Active hold changed because it was created, restored, extended, partially
|
|
1670
1751
|
* released, or fully released. Hosts should persist this state for route
|
|
@@ -1734,7 +1815,10 @@ declare class SeatPicker {
|
|
|
1734
1815
|
private accessEl;
|
|
1735
1816
|
private readonly apiBase;
|
|
1736
1817
|
private readonly controller;
|
|
1737
|
-
private
|
|
1818
|
+
private maxTickets;
|
|
1819
|
+
/** Exact ticket count required before checkout; null keeps ordinary 1..max behavior. */
|
|
1820
|
+
private readonly exactTickets;
|
|
1821
|
+
private lastExactSelectionValidity;
|
|
1738
1822
|
/** Original host pricing, kept separate from live server offer overrides. */
|
|
1739
1823
|
private readonly hostPricing;
|
|
1740
1824
|
private root;
|
|
@@ -1759,6 +1843,9 @@ declare class SeatPicker {
|
|
|
1759
1843
|
/** The event's formatted date-time (event-zone), reused by the closed-state note. */
|
|
1760
1844
|
private eventWhenText;
|
|
1761
1845
|
private offerAvailability;
|
|
1846
|
+
/** Server-authoritative channel rules, projected only for this buyer scope. */
|
|
1847
|
+
private readonly channelByObject;
|
|
1848
|
+
private readonly pricesByChannel;
|
|
1762
1849
|
private hold;
|
|
1763
1850
|
/** Latest server expiry for the open hold (moves on extend). */
|
|
1764
1851
|
private holdExpiresAt;
|
|
@@ -2081,7 +2168,7 @@ declare class SeatPicker {
|
|
|
2081
2168
|
private activeFloorObjects;
|
|
2082
2169
|
/** Attach the F3 overview minimap into the bottom-left chrome region. */
|
|
2083
2170
|
private buildMinimap;
|
|
2084
|
-
/** Effective
|
|
2171
|
+
/** Effective category summary price. Object-specific channel prices are added to the range below. */
|
|
2085
2172
|
private catPrice;
|
|
2086
2173
|
/** Complete buyer-visible price range, including every ticket tier and
|
|
2087
2174
|
* tier-specific host override. */
|
|
@@ -2184,11 +2271,12 @@ declare class SeatPicker {
|
|
|
2184
2271
|
*/
|
|
2185
2272
|
private refreshOfferAvailability;
|
|
2186
2273
|
private offerPrice;
|
|
2274
|
+
private applyChannelPricing;
|
|
2187
2275
|
/** The compact current/upcoming offer card above Ticket prices. */
|
|
2188
2276
|
private syncOffer;
|
|
2189
2277
|
/**
|
|
2190
|
-
* The price the buyer will actually pay for
|
|
2191
|
-
*
|
|
2278
|
+
* The price the buyer will actually pay for an object/category/tier: its
|
|
2279
|
+
* scoped channel override, then the host/server offer, then the chart. Every
|
|
2192
2280
|
* price the widget DISPLAYS or hands off must flow through here — a map
|
|
2193
2281
|
* that shows one price while checkout charges another destroys trust.
|
|
2194
2282
|
*/
|
|
@@ -2212,6 +2300,7 @@ declare class SeatPicker {
|
|
|
2212
2300
|
/** A live delta took one of OUR selected (not yet held) seats — evict + tell the buyer. */
|
|
2213
2301
|
private evictTakenSelections;
|
|
2214
2302
|
private syncTray;
|
|
2303
|
+
private emitExactSelectionValidity;
|
|
2215
2304
|
/** Paint the bottom-sheet's collapsed one-liner (pickerTray.ts builds it). */
|
|
2216
2305
|
private renderPeek;
|
|
2217
2306
|
private removeHeldLabel;
|
|
@@ -2282,6 +2371,22 @@ declare class SeatPicker {
|
|
|
2282
2371
|
private rowTypeWord;
|
|
2283
2372
|
private updateTooltip;
|
|
2284
2373
|
getSelection(): PickerSeat[];
|
|
2374
|
+
/** Select free objects by engine id or public label. */
|
|
2375
|
+
selectObjects(objects: string[]): PickerSeat[];
|
|
2376
|
+
/** Deselect objects by engine id or public label. */
|
|
2377
|
+
deselectObjects(objects: string[]): void;
|
|
2378
|
+
/** Clear every unheld selection. */
|
|
2379
|
+
clearSelection(): void;
|
|
2380
|
+
/** Select every selectable object in the named categories. */
|
|
2381
|
+
selectCategories(categoryKeys: string[]): PickerSeat[];
|
|
2382
|
+
/** Deselect every selected object in the named categories. */
|
|
2383
|
+
deselectCategories(categoryKeys: string[]): void;
|
|
2384
|
+
/** Replace the buyer-selectable object allow-list without remounting. */
|
|
2385
|
+
setSelectableObjects(objects: string[] | null): void;
|
|
2386
|
+
/** Change the order selection cap without remounting. */
|
|
2387
|
+
setMaxSelection(maxSelection: number): void;
|
|
2388
|
+
/** Current exact-count validity, including held and pending GA tickets. */
|
|
2389
|
+
getSelectionValidity(): PickerSelectionValidity | null;
|
|
2285
2390
|
/**
|
|
2286
2391
|
* Re-ink the DRAWN MAP after mount, so the canvas can follow a page palette
|
|
2287
2392
|
* the host did not know at construction time.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { PickerSeat, RendererViewMode, SeatHoverDetails, PickerTransport, PickerMapTheme } from '@seatlayer/core';
|
|
2
|
-
export { ExpandedSeat, PickerMapTheme, RendererViewMode, SeatHoverDetails } from '@seatlayer/core';
|
|
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
|
|
1
|
+
import { PickerSeat, RendererViewMode, SeatHoverDetails, PickerSelectionValidity, PickerTransport, PickerMapTheme } from '@seatlayer/core';
|
|
2
|
+
export { ExpandedSeat, PickerMapTheme, PickerSelectionValidity, RendererViewMode, SeatHoverDetails } from '@seatlayer/core';
|
|
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-CFxx1jp3.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Buyer access context — the browser half of the Sales Channels contract
|
|
@@ -393,6 +393,8 @@ interface HoldLineItem {
|
|
|
393
393
|
unitPrice: number;
|
|
394
394
|
currency: string;
|
|
395
395
|
quantity?: number;
|
|
396
|
+
/** Channel pricing revision captured when this line used an override. */
|
|
397
|
+
channelPricingVersion?: number | null;
|
|
396
398
|
}
|
|
397
399
|
declare class ApiError extends Error {
|
|
398
400
|
status: number;
|
|
@@ -568,6 +570,12 @@ interface SeatingChartOptions {
|
|
|
568
570
|
buyerAccessToken?: string | BuyerAccessToken;
|
|
569
571
|
/** Max seats selectable at once (default 10). */
|
|
570
572
|
maxSelection?: number;
|
|
573
|
+
/** Object ids or public labels selected after live availability is loaded. */
|
|
574
|
+
selectedObjects?: string[];
|
|
575
|
+
/** Object ids or public labels the buyer may select. Omit for all free objects. */
|
|
576
|
+
selectableObjects?: string[] | null;
|
|
577
|
+
/** Require exactly this many seated/table guest units before the selection is valid. */
|
|
578
|
+
numberOfPlacesToSelect?: number;
|
|
571
579
|
/**
|
|
572
580
|
* BCP 47 language for the widget UI — `'de'`, `'es-MX'`, etc. Falls back to
|
|
573
581
|
* the browser language, then English. Built-in: en, es, de, fr. The German
|
|
@@ -605,6 +613,14 @@ interface SeatingChartOptions {
|
|
|
605
613
|
*/
|
|
606
614
|
onSeatHover?: (details: SeatHoverDetails | null) => void;
|
|
607
615
|
onSelectionChange?: (seats: SelectedSeat[]) => void;
|
|
616
|
+
/** Exact-count state after each selection change. */
|
|
617
|
+
onSelectionValidityChange?: (state: PickerSelectionValidity) => void;
|
|
618
|
+
/** The exact configured count has just been reached. */
|
|
619
|
+
onSelectionValid?: (seats: SelectedSeat[]) => void;
|
|
620
|
+
/** The current selection does not match the configured exact count. */
|
|
621
|
+
onSelectionInvalid?: (state: PickerSelectionValidity) => void;
|
|
622
|
+
/** A manual or programmatic selection reached the active maximum. */
|
|
623
|
+
onSelectionLimit?: (maxSelection: number) => void;
|
|
608
624
|
onHold?: (result: HoldResult) => void;
|
|
609
625
|
/** A prior active hold was restored with resumeHold(). */
|
|
610
626
|
onHoldRestored?: (result: HoldResult) => void;
|
|
@@ -701,6 +717,22 @@ declare class SeatingChart {
|
|
|
701
717
|
getMode(): 'live' | 'test' | null;
|
|
702
718
|
/** Current selection with prices resolved from the chart categories. */
|
|
703
719
|
getSelection(): SelectedSeat[];
|
|
720
|
+
/** Select free objects by engine id or public label. Returns newly selected objects. */
|
|
721
|
+
selectObjects(objects: string[]): SelectedSeat[];
|
|
722
|
+
/** Deselect objects by engine id or public label. */
|
|
723
|
+
deselectObjects(objects: string[]): void;
|
|
724
|
+
/** Clear every unheld selection. */
|
|
725
|
+
clearSelection(): void;
|
|
726
|
+
/** Select every selectable object in the named categories. */
|
|
727
|
+
selectCategories(categoryKeys: string[]): SelectedSeat[];
|
|
728
|
+
/** Deselect every selected object in the named categories. */
|
|
729
|
+
deselectCategories(categoryKeys: string[]): void;
|
|
730
|
+
/** Replace the buyer-selectable object allow-list without remounting. */
|
|
731
|
+
setSelectableObjects(objects: string[] | null): void;
|
|
732
|
+
/** Change the selection cap without remounting. */
|
|
733
|
+
setMaxSelection(maxSelection: number): void;
|
|
734
|
+
/** Current exact-count validity, or null when no exact count was configured. */
|
|
735
|
+
getSelectionValidity(): PickerSelectionValidity | null;
|
|
704
736
|
/** Hold the current selection. Resolves the hold, or null on a 409 conflict. */
|
|
705
737
|
hold(options?: {
|
|
706
738
|
ttlMs?: number;
|
|
@@ -871,6 +903,22 @@ interface SeatingChartHandle {
|
|
|
871
903
|
releaseLabels(labels: string[]): Promise<boolean>;
|
|
872
904
|
/** The current selection, with prices resolved from the chart categories. */
|
|
873
905
|
getSelection(): SelectedSeat[];
|
|
906
|
+
/** Select free objects by engine id or public label. */
|
|
907
|
+
selectObjects(objects: string[]): SelectedSeat[];
|
|
908
|
+
/** Deselect objects by engine id or public label. */
|
|
909
|
+
deselectObjects(objects: string[]): void;
|
|
910
|
+
/** Clear every unheld selection. */
|
|
911
|
+
clearSelection(): void;
|
|
912
|
+
/** Select every selectable object in the named categories. */
|
|
913
|
+
selectCategories(categoryKeys: string[]): SelectedSeat[];
|
|
914
|
+
/** Deselect every selected object in the named categories. */
|
|
915
|
+
deselectCategories(categoryKeys: string[]): void;
|
|
916
|
+
/** Replace the buyer-selectable object allow-list without rebuilding. */
|
|
917
|
+
setSelectableObjects(objects: string[] | null): void;
|
|
918
|
+
/** Change the selection cap without rebuilding. */
|
|
919
|
+
setMaxSelection(maxSelection: number): void;
|
|
920
|
+
/** Current exact-count validity, or null when no exact count was configured. */
|
|
921
|
+
getSelectionValidity(): PickerSelectionValidity | null;
|
|
874
922
|
/**
|
|
875
923
|
* Choose a ticket tier for a selected seat (e.g. Adult → Child). Available
|
|
876
924
|
* `tiers` are on each `SelectedSeat`; `tierId=null` reverts to the default.
|
|
@@ -904,7 +952,7 @@ interface SeatingChartHandle {
|
|
|
904
952
|
* Every method a wrapper must forward. The wrappers build their handle by
|
|
905
953
|
* iterating this, so the list IS the contract rather than a description of it.
|
|
906
954
|
*/
|
|
907
|
-
declare const SEATING_CHART_HANDLE_METHODS: readonly ["hold", "resumeHold", "getCurrentHold", "getGAAreas", "holdGA", "bestAvailable", "release", "releaseLabels", "getSelection", "setSeatTier", "getFloors", "setFloor", "setColorblindSafe", "zoomIn", "zoomOut", "zoomToFit", "refreshAccess"];
|
|
955
|
+
declare const SEATING_CHART_HANDLE_METHODS: readonly ["hold", "resumeHold", "getCurrentHold", "getGAAreas", "holdGA", "bestAvailable", "release", "releaseLabels", "getSelection", "selectObjects", "deselectObjects", "clearSelection", "selectCategories", "deselectCategories", "setSelectableObjects", "setMaxSelection", "getSelectionValidity", "setSeatTier", "getFloors", "setFloor", "setColorblindSafe", "zoomIn", "zoomOut", "zoomToFit", "refreshAccess"];
|
|
908
956
|
type SeatingChartHandleMethod = (typeof SEATING_CHART_HANDLE_METHODS)[number];
|
|
909
957
|
/**
|
|
910
958
|
* Build the forwarding object every wrapper exposes.
|
|
@@ -925,13 +973,13 @@ declare function bindSeatingChartHandle(getInstance: () => SeatingChart | null):
|
|
|
925
973
|
* two behaviours. React already treated them this way; Vue and Angular did not
|
|
926
974
|
* expose them at all.
|
|
927
975
|
*/
|
|
928
|
-
declare const SEATING_CHART_IDENTITY_PROPS: readonly ["event", "apiBase", "maxSelection", "publicKey", "locale", "currency", "colorblindSafe", "initialView", "errorDisplay"];
|
|
976
|
+
declare const SEATING_CHART_IDENTITY_PROPS: readonly ["event", "apiBase", "maxSelection", "numberOfPlacesToSelect", "publicKey", "locale", "currency", "colorblindSafe", "initialView", "errorDisplay"];
|
|
929
977
|
type SeatingChartIdentityProp = (typeof SEATING_CHART_IDENTITY_PROPS)[number];
|
|
930
978
|
/** Non-callback options a wrapper accepts as props/inputs and passes straight through. */
|
|
931
|
-
declare const SEATING_CHART_VALUE_PROPS: readonly ["event", "apiBase", "maxSelection", "publicKey", "locale", "currency", "colorblindSafe", "initialView", "errorDisplay", "messages", "seatTooltip", "buyerAccessTokenProvider", "buyerAccessToken"];
|
|
979
|
+
declare const SEATING_CHART_VALUE_PROPS: readonly ["event", "apiBase", "maxSelection", "numberOfPlacesToSelect", "publicKey", "locale", "currency", "colorblindSafe", "initialView", "errorDisplay", "selectedObjects", "selectableObjects", "messages", "seatTooltip", "buyerAccessTokenProvider", "buyerAccessToken"];
|
|
932
980
|
type SeatingChartValueProp = (typeof SEATING_CHART_VALUE_PROPS)[number];
|
|
933
981
|
/** Every callback option a wrapper wires to its own event mechanism. */
|
|
934
|
-
declare const SEATING_CHART_CALLBACK_PROPS: readonly ["onSelectionChange", "onHold", "onHoldRestored", "onHoldExpired", "onGAClick", "onError", "onDeckTap", "onHint", "onSeatHover", "onAccessExpired", "onAccessUnavailable", "onSelectedObjectUnavailable"];
|
|
982
|
+
declare const SEATING_CHART_CALLBACK_PROPS: readonly ["onSelectionChange", "onSelectionValidityChange", "onSelectionValid", "onSelectionInvalid", "onSelectionLimit", "onHold", "onHoldRestored", "onHoldExpired", "onGAClick", "onError", "onDeckTap", "onHint", "onSeatHover", "onAccessExpired", "onAccessUnavailable", "onSelectedObjectUnavailable"];
|
|
935
983
|
type SeatingChartCallbackProp = (typeof SEATING_CHART_CALLBACK_PROPS)[number];
|
|
936
984
|
/** The value half of the options, as a wrapper holds it. */
|
|
937
985
|
type SeatingChartValues = Pick<SeatingChartOptions, SeatingChartValueProp>;
|
|
@@ -1251,6 +1299,24 @@ interface TicketOfferPrice {
|
|
|
1251
1299
|
startsAt?: number | null;
|
|
1252
1300
|
endsAt?: number | null;
|
|
1253
1301
|
}
|
|
1302
|
+
interface ChannelPriceOverride {
|
|
1303
|
+
categoryKey: string;
|
|
1304
|
+
tierId: string | null;
|
|
1305
|
+
price: number;
|
|
1306
|
+
}
|
|
1307
|
+
/** Pricing configuration projected only for the private channels in this grant. */
|
|
1308
|
+
interface BuyerChannelPricing {
|
|
1309
|
+
assignmentVersion: number;
|
|
1310
|
+
channels: Array<{
|
|
1311
|
+
channelId: string;
|
|
1312
|
+
pricingVersion: number;
|
|
1313
|
+
priceOverrides: ChannelPriceOverride[];
|
|
1314
|
+
}>;
|
|
1315
|
+
objects: Array<{
|
|
1316
|
+
label: string;
|
|
1317
|
+
channelId: string;
|
|
1318
|
+
}>;
|
|
1319
|
+
}
|
|
1254
1320
|
interface TicketOfferAvailability {
|
|
1255
1321
|
state: SaleState;
|
|
1256
1322
|
/** Currently advertised offer price, in minor units. */
|
|
@@ -1263,6 +1329,7 @@ interface TicketOfferAvailability {
|
|
|
1263
1329
|
upcoming: TicketOfferSummary | null;
|
|
1264
1330
|
/** Server-resolved active offer prices by category, in major units. */
|
|
1265
1331
|
prices: TicketOfferPrice[];
|
|
1332
|
+
channelPricing: BuyerChannelPricing | null;
|
|
1266
1333
|
}
|
|
1267
1334
|
/** Parse a public offer payload without repairing a half-understood price. */
|
|
1268
1335
|
declare function parseTicketOfferAvailability(body: unknown): TicketOfferAvailability | null;
|
|
@@ -1440,6 +1507,12 @@ interface SeatPickerOptions {
|
|
|
1440
1507
|
buyerAccessToken?: string | BuyerAccessToken;
|
|
1441
1508
|
/** Max seats selectable at once (default 10). */
|
|
1442
1509
|
maxSelection?: number;
|
|
1510
|
+
/** Object ids or public labels selected after live availability is loaded. */
|
|
1511
|
+
selectedObjects?: string[];
|
|
1512
|
+
/** Object ids or public labels the buyer may select. Omit for all free objects. */
|
|
1513
|
+
selectableObjects?: string[] | null;
|
|
1514
|
+
/** Require exactly this many total seated/table/GA guest units before checkout. */
|
|
1515
|
+
numberOfPlacesToSelect?: number;
|
|
1443
1516
|
/** BCP 47 language for the widget UI. Built-in: en, es, de, fr. */
|
|
1444
1517
|
locale?: string;
|
|
1445
1518
|
/** Per-key string overrides layered over the active locale. */
|
|
@@ -1665,6 +1738,14 @@ interface SeatPickerOptions {
|
|
|
1665
1738
|
onBooked?: (handoff: CheckoutHandoff) => void;
|
|
1666
1739
|
/** Selection changed (tap or best-available). */
|
|
1667
1740
|
onSelectionChange?: (seats: PickerSeat[]) => void;
|
|
1741
|
+
/** Exact-count state after each selection change. */
|
|
1742
|
+
onSelectionValidityChange?: (state: PickerSelectionValidity) => void;
|
|
1743
|
+
/** The configured exact ticket count has just been reached. */
|
|
1744
|
+
onSelectionValid?: (seats: PickerSeat[]) => void;
|
|
1745
|
+
/** The current selection does not match the configured exact ticket count. */
|
|
1746
|
+
onSelectionInvalid?: (state: PickerSelectionValidity) => void;
|
|
1747
|
+
/** A selection attempt reached the active maximum. */
|
|
1748
|
+
onSelectionLimit?: (maxSelection: number) => void;
|
|
1668
1749
|
/**
|
|
1669
1750
|
* Active hold changed because it was created, restored, extended, partially
|
|
1670
1751
|
* released, or fully released. Hosts should persist this state for route
|
|
@@ -1734,7 +1815,10 @@ declare class SeatPicker {
|
|
|
1734
1815
|
private accessEl;
|
|
1735
1816
|
private readonly apiBase;
|
|
1736
1817
|
private readonly controller;
|
|
1737
|
-
private
|
|
1818
|
+
private maxTickets;
|
|
1819
|
+
/** Exact ticket count required before checkout; null keeps ordinary 1..max behavior. */
|
|
1820
|
+
private readonly exactTickets;
|
|
1821
|
+
private lastExactSelectionValidity;
|
|
1738
1822
|
/** Original host pricing, kept separate from live server offer overrides. */
|
|
1739
1823
|
private readonly hostPricing;
|
|
1740
1824
|
private root;
|
|
@@ -1759,6 +1843,9 @@ declare class SeatPicker {
|
|
|
1759
1843
|
/** The event's formatted date-time (event-zone), reused by the closed-state note. */
|
|
1760
1844
|
private eventWhenText;
|
|
1761
1845
|
private offerAvailability;
|
|
1846
|
+
/** Server-authoritative channel rules, projected only for this buyer scope. */
|
|
1847
|
+
private readonly channelByObject;
|
|
1848
|
+
private readonly pricesByChannel;
|
|
1762
1849
|
private hold;
|
|
1763
1850
|
/** Latest server expiry for the open hold (moves on extend). */
|
|
1764
1851
|
private holdExpiresAt;
|
|
@@ -2081,7 +2168,7 @@ declare class SeatPicker {
|
|
|
2081
2168
|
private activeFloorObjects;
|
|
2082
2169
|
/** Attach the F3 overview minimap into the bottom-left chrome region. */
|
|
2083
2170
|
private buildMinimap;
|
|
2084
|
-
/** Effective
|
|
2171
|
+
/** Effective category summary price. Object-specific channel prices are added to the range below. */
|
|
2085
2172
|
private catPrice;
|
|
2086
2173
|
/** Complete buyer-visible price range, including every ticket tier and
|
|
2087
2174
|
* tier-specific host override. */
|
|
@@ -2184,11 +2271,12 @@ declare class SeatPicker {
|
|
|
2184
2271
|
*/
|
|
2185
2272
|
private refreshOfferAvailability;
|
|
2186
2273
|
private offerPrice;
|
|
2274
|
+
private applyChannelPricing;
|
|
2187
2275
|
/** The compact current/upcoming offer card above Ticket prices. */
|
|
2188
2276
|
private syncOffer;
|
|
2189
2277
|
/**
|
|
2190
|
-
* The price the buyer will actually pay for
|
|
2191
|
-
*
|
|
2278
|
+
* The price the buyer will actually pay for an object/category/tier: its
|
|
2279
|
+
* scoped channel override, then the host/server offer, then the chart. Every
|
|
2192
2280
|
* price the widget DISPLAYS or hands off must flow through here — a map
|
|
2193
2281
|
* that shows one price while checkout charges another destroys trust.
|
|
2194
2282
|
*/
|
|
@@ -2212,6 +2300,7 @@ declare class SeatPicker {
|
|
|
2212
2300
|
/** A live delta took one of OUR selected (not yet held) seats — evict + tell the buyer. */
|
|
2213
2301
|
private evictTakenSelections;
|
|
2214
2302
|
private syncTray;
|
|
2303
|
+
private emitExactSelectionValidity;
|
|
2215
2304
|
/** Paint the bottom-sheet's collapsed one-liner (pickerTray.ts builds it). */
|
|
2216
2305
|
private renderPeek;
|
|
2217
2306
|
private removeHeldLabel;
|
|
@@ -2282,6 +2371,22 @@ declare class SeatPicker {
|
|
|
2282
2371
|
private rowTypeWord;
|
|
2283
2372
|
private updateTooltip;
|
|
2284
2373
|
getSelection(): PickerSeat[];
|
|
2374
|
+
/** Select free objects by engine id or public label. */
|
|
2375
|
+
selectObjects(objects: string[]): PickerSeat[];
|
|
2376
|
+
/** Deselect objects by engine id or public label. */
|
|
2377
|
+
deselectObjects(objects: string[]): void;
|
|
2378
|
+
/** Clear every unheld selection. */
|
|
2379
|
+
clearSelection(): void;
|
|
2380
|
+
/** Select every selectable object in the named categories. */
|
|
2381
|
+
selectCategories(categoryKeys: string[]): PickerSeat[];
|
|
2382
|
+
/** Deselect every selected object in the named categories. */
|
|
2383
|
+
deselectCategories(categoryKeys: string[]): void;
|
|
2384
|
+
/** Replace the buyer-selectable object allow-list without remounting. */
|
|
2385
|
+
setSelectableObjects(objects: string[] | null): void;
|
|
2386
|
+
/** Change the order selection cap without remounting. */
|
|
2387
|
+
setMaxSelection(maxSelection: number): void;
|
|
2388
|
+
/** Current exact-count validity, including held and pending GA tickets. */
|
|
2389
|
+
getSelectionValidity(): PickerSelectionValidity | null;
|
|
2285
2390
|
/**
|
|
2286
2391
|
* Re-ink the DRAWN MAP after mount, so the canvas can follow a page palette
|
|
2287
2392
|
* the host did not know at construction time.
|