@seatlayer/js 0.76.0 → 0.77.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +128 -68
- package/dist/index.d.cts +80 -62
- package/dist/index.d.ts +80 -62
- package/dist/index.js +127 -67
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PickerSeat, PickerGAArea, PickerMapTheme, PickerTransport, PickerSelectionValidator, RendererViewMode, PickerSelectionValidity, ChartTheme, FloorLabelStyle, LodRung, SectionSummary, PickerAccessNeed, SeatHoverDetails, AvailabilityRefreshOutcome, PickerController,
|
|
1
|
+
import { PickerSeat, PickerGAArea, PickerMapTheme, PickerTransport, PickerSelectionValidator, RendererViewMode, PickerSelectionValidity, ChartTheme, AccessibilityType, FloorLabelStyle, LodRung, SectionSummary, PickerAccessNeed, SeatHoverDetails, AccessibleSectionStep, AvailabilityRefreshOutcome, PickerController, ExpandedSeat } from '@seatlayer/core';
|
|
2
2
|
export { ExpandedSeat, PickerMapTheme, PickerSelectionValidator, PickerSelectionValidity, PickerSelectionViolation, RendererViewMode, SeatHoverDetails } from '@seatlayer/core';
|
|
3
3
|
import { T as ThemeMode } from './channelsMode-goczEzyt.cjs';
|
|
4
4
|
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, U as InventoryBookingObject, V as InventoryBookingState, W as InventoryBookingsPage, X as InventoryBookingsQuery, Y as LogEntry, Z as LogPage, _ as ManageApi, $ as ManageApiError, a0 as ReportByStatus, a1 as ReportCategoryMeta, a2 as ReportCategoryRow, a3 as ReportResult, a4 as SeatManager, a5 as SeatManagerActionResult, a6 as SeatManagerActivity, a7 as SeatManagerCapability, a8 as SeatManagerConnection, a9 as SeatManagerFilteredSection, aa as SeatManagerMode, ab as SeatManagerOptions, ac as SeatManagerSelectionValidity, ad as SeatManagerTallies, ae as SelectionSourceRow } from './channelsMode-goczEzyt.cjs';
|
|
@@ -1377,6 +1377,23 @@ interface SeatingChartPickerState {
|
|
|
1377
1377
|
label: string;
|
|
1378
1378
|
displayLabel?: string;
|
|
1379
1379
|
zoneId?: string;
|
|
1380
|
+
/**
|
|
1381
|
+
* Free spaces in THIS section for each provision the event offers —
|
|
1382
|
+
* `{ wheelchair: 2, companion: 2 }`. `capability: section-access-counts-v1`.
|
|
1383
|
+
*
|
|
1384
|
+
* The same numbers the web menu's spread hint is built from, so a native
|
|
1385
|
+
* shell can draw its own "where" instead of only dimming the map. A shell
|
|
1386
|
+
* that filtered to fifteen wheelchair spaces scattered round a bowl had
|
|
1387
|
+
* nothing to point at; these are the sections to point at.
|
|
1388
|
+
*
|
|
1389
|
+
* PRESENT-ONLY, at every level: a type appears only when the engine
|
|
1390
|
+
* counted it and found at least one free, and the whole field is absent
|
|
1391
|
+
* for a section that holds none — and also before a renderer exists,
|
|
1392
|
+
* which is why absent must be read as NOT COUNTED and never as zero. It
|
|
1393
|
+
* describes the floor the map is currently on, like everything else the
|
|
1394
|
+
* renderer answers.
|
|
1395
|
+
*/
|
|
1396
|
+
accessibleFree?: Partial<Record<AccessibilityType, number>>;
|
|
1380
1397
|
}>;
|
|
1381
1398
|
gaAreas: GAAreaAvailability[];
|
|
1382
1399
|
bestAvailableZones: Array<{
|
|
@@ -1884,6 +1901,11 @@ declare class SeatingChart {
|
|
|
1884
1901
|
setRung(rung: LodRung): void;
|
|
1885
1902
|
setCategoryFilter(categoryKeys: string[] | null, focus?: boolean): void;
|
|
1886
1903
|
setAccessibilityFilter(types: string[] | null): void;
|
|
1904
|
+
/** Fly to the matches of the filter already on, leaving the filter alone. */
|
|
1905
|
+
focusAccessibilityFilter(): void;
|
|
1906
|
+
/** Step to the next section holding a free matching space, framing the
|
|
1907
|
+
* spaces rather than the stand. Null when nothing matches. */
|
|
1908
|
+
focusNextAccessibleSection(types?: string[] | null): AccessibleSectionStep | null;
|
|
1887
1909
|
setCommercialLimitedFilter(on: boolean): void;
|
|
1888
1910
|
/** Current selection with prices resolved from the chart categories. */
|
|
1889
1911
|
getSelection(): SelectedSeat[];
|
|
@@ -2783,7 +2805,11 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
2783
2805
|
private tipPinned;
|
|
2784
2806
|
private tipMarkedHoverLabel;
|
|
2785
2807
|
private lastPointerType;
|
|
2786
|
-
/** @internal
|
|
2808
|
+
/** @internal The mounted confirm card. A facade over ConfirmCard in both
|
|
2809
|
+
* directions — the widget's own callers, its tests and the toast placer all
|
|
2810
|
+
* read and assign it as the plain field it used to be. */
|
|
2811
|
+
/** @internal */ get confirmEl(): HTMLDivElement | null;
|
|
2812
|
+
/** @internal */ set confirmEl(el: HTMLDivElement | null);
|
|
2787
2813
|
/** Light / dark / auto, or null when the widget is not managing a mode at
|
|
2788
2814
|
* all — which is the default, and is byte-for-byte the old behaviour. */
|
|
2789
2815
|
private themeMode;
|
|
@@ -2793,7 +2819,11 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
2793
2819
|
* the closure that says so once the render facts exist to say it with. */
|
|
2794
2820
|
private seatsRevealed;
|
|
2795
2821
|
private seatsRevealedReport;
|
|
2796
|
-
|
|
2822
|
+
/** The seat the confirm card is about — the same facade as `confirmEl`. */
|
|
2823
|
+
private get confirmSeat();
|
|
2824
|
+
private set confirmSeat(value);
|
|
2825
|
+
/** The confirm card owns its element and its candidate seat. */
|
|
2826
|
+
private confirmCardCache;
|
|
2797
2827
|
private suppressConfirmationSeatId;
|
|
2798
2828
|
private tableDialogEl;
|
|
2799
2829
|
private tableDialog;
|
|
@@ -2916,19 +2946,6 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
2916
2946
|
private framedFs;
|
|
2917
2947
|
/** Last height (px) posted to a host frame; dedupes redundant reports. */
|
|
2918
2948
|
private lastPostedHeight;
|
|
2919
|
-
/** True when the chart carries a real performance anchor — a stage-kind shape.
|
|
2920
|
-
* Every chart has a `focalPoint` (a bare look-at coordinate), so its presence
|
|
2921
|
-
* alone never justifies a "to stage" claim; only an actual stage does. */
|
|
2922
|
-
private chartHasStage;
|
|
2923
|
-
/**
|
|
2924
|
-
* Eager sightline preview for the confirm card: the organizer's real view
|
|
2925
|
-
* photo, or — only when the chart has an actual stage to look at — a generated
|
|
2926
|
-
* forward view plus an approximate distance-to-stage line. On a stageless
|
|
2927
|
-
* chart both the distance claim and the generic stage silhouette are
|
|
2928
|
-
* invented promises, so we suppress them; a real attached photo always shows.
|
|
2929
|
-
* (OV-52)
|
|
2930
|
-
*/
|
|
2931
|
-
private confirmThumbHtml;
|
|
2932
2949
|
/** See `./seatViewThumb`, which the native bridge answers from as well. */
|
|
2933
2950
|
private deliverableViewReference;
|
|
2934
2951
|
/** True when the picker is rendered inside an iframe (snippet embed at /e/:key). */
|
|
@@ -3037,9 +3054,42 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3037
3054
|
* seats the buyer cannot see.
|
|
3038
3055
|
*/
|
|
3039
3056
|
private focusSeatsForFilter;
|
|
3057
|
+
/**
|
|
3058
|
+
* Say what just happened when the camera could not say it.
|
|
3059
|
+
*
|
|
3060
|
+
* Fifteen wheelchair spaces in fifteen sections around a bowl have no "there"
|
|
3061
|
+
* to fly to: the framing call frames the whole venue, which is the view the
|
|
3062
|
+
* buyer was already looking at, so from their side the map dimmed and nothing
|
|
3063
|
+
* else changed. The overview now marks the sections that carry them; this is
|
|
3064
|
+
* the sentence that tells the buyer to look for those marks. Said only for
|
|
3065
|
+
* that shape — a tight cluster is dived into and explains itself.
|
|
3066
|
+
*/
|
|
3067
|
+
private explainAccessibilitySpread;
|
|
3068
|
+
/**
|
|
3069
|
+
* Put the filter on the map and on everything that quotes the map.
|
|
3070
|
+
*
|
|
3071
|
+
* EVERY DOOR RUNS THIS ONE BODY — the ♿ menu, host code, and the native
|
|
3072
|
+
* bridge through it — because each surface that was updated on only one of
|
|
3073
|
+
* those paths went on quoting the unfiltered venue:
|
|
3074
|
+
*
|
|
3075
|
+
* • the price chips carry free counts, and a filter changes what "free"
|
|
3076
|
+
* means; left unsynced they offered bands the dimmed map no longer does;
|
|
3077
|
+
* • the minimap outlines what the map is showing, so an unrefreshed one
|
|
3078
|
+
* drew the buyer a venue they were no longer being offered;
|
|
3079
|
+
* • 3D applies the filter as its own dim. The 2D one is Konva opacity,
|
|
3080
|
+
* which the GL view never sees — `seatState3dFor` knows how to dim for
|
|
3081
|
+
* it, but nothing was asking it to, so a buyer who filtered to wheelchair
|
|
3082
|
+
* places and switched to 3D got the whole venue back, undimmed, with the
|
|
3083
|
+
* switch still reading as on.
|
|
3084
|
+
*/
|
|
3085
|
+
private applyAccessibilityFilter;
|
|
3040
3086
|
/** Turn the buyer's accessibility filter on or off from host code. Mirrors
|
|
3041
3087
|
* the bridge command and the menu, so the three never diverge. */
|
|
3042
3088
|
setAccessibilityFilter(types: AccessibilityType[] | null): void;
|
|
3089
|
+
/** Fly to what the accessibility filter ALREADY ON matched, without
|
|
3090
|
+
* toggling it — `picker.focusAccessibilityFilter` on the native bridge, for
|
|
3091
|
+
* a shell whose own chips are drawn outside the widget. */
|
|
3092
|
+
focusAccessibilityFilter(): void;
|
|
3043
3093
|
private dockLayoutChrome;
|
|
3044
3094
|
/** The "Need more time?" prompt shown in the hold's final EXTEND_PROMPT_MS. */
|
|
3045
3095
|
private buildExtendPrompt;
|
|
@@ -3221,59 +3271,27 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3221
3271
|
private confirmTableDialog;
|
|
3222
3272
|
private cancelTableDialog;
|
|
3223
3273
|
private dismissTableDialog;
|
|
3224
|
-
/** @internal */ showConfirm(seat: ExpandedSeat): void;
|
|
3225
3274
|
/**
|
|
3226
|
-
*
|
|
3227
|
-
*
|
|
3228
|
-
* The confirm card arrives with two buttons and nothing saying which one
|
|
3229
|
-
* carries the decision. So the commit button shimmers shortly after the card
|
|
3230
|
-
* lands and then breathes — and stops at the first sign of a person touching
|
|
3231
|
-
* the card at all, not after a fixed count. An invitation that keeps being
|
|
3232
|
-
* made after it has been received is nagging, which is why the stop is bound
|
|
3233
|
-
* to three different first-contacts rather than to a timer.
|
|
3275
|
+
* The confirm card, built on first use.
|
|
3234
3276
|
*
|
|
3235
|
-
*
|
|
3236
|
-
*
|
|
3237
|
-
*
|
|
3277
|
+
* Every host member is a function that calls back through `this`, never a
|
|
3278
|
+
* captured value: the widget's tests replace `dismissConfirm`,
|
|
3279
|
+
* `reducedMotion`, `scheduleMotion`, `syncTray`, `canOffer3d`, `enter3d` and
|
|
3280
|
+
* `buyerAssetUrls` on the INSTANCE, and the card has to see those.
|
|
3238
3281
|
*/
|
|
3239
|
-
private
|
|
3240
|
-
/**
|
|
3241
|
-
* What the confirm card's commit button says.
|
|
3242
|
-
*
|
|
3243
|
-
* "Select" named the mechanism, not the act — on a card already showing Row,
|
|
3244
|
-
* Seat and a price, the one control that decides the purchase was the least
|
|
3245
|
-
* specific thing on it. It names the act instead.
|
|
3246
|
-
*
|
|
3247
|
-
* NO PRICE ON THE BUTTON (owner call 2026-09-02). "Add seat · $180" was tried
|
|
3248
|
-
* and wrapped the button to two lines beside a one-line Cancel on a 310px
|
|
3249
|
-
* phone card. The amount is already the largest thing in the band directly
|
|
3250
|
-
* above, so putting it on the button bought a second copy of a fact the
|
|
3251
|
-
* buyer is looking at and cost the row its shape.
|
|
3252
|
-
*
|
|
3253
|
-
* A seat only. A booth, a table or a general-admission line keeps the
|
|
3254
|
-
* existing wording rather than being told it is adding a "seat" — those
|
|
3255
|
-
* surfaces have their own nouns (the table dialog says "Select whole table"),
|
|
3256
|
-
* and a wrong noun is worse than a general verb.
|
|
3257
|
-
*/
|
|
3258
|
-
private addSeatLabel;
|
|
3282
|
+
private get confirmCard();
|
|
3283
|
+
/** @internal */ showConfirm(seat: ExpandedSeat): void;
|
|
3259
3284
|
private reanchorConfirm;
|
|
3260
3285
|
private dismissConfirm;
|
|
3261
|
-
/**
|
|
3262
|
-
*
|
|
3263
|
-
|
|
3264
|
-
* STATE FIRST, ALWAYS. The cart, the totals and the 3D snapshot update on the
|
|
3265
|
-
* same tick as the click; nothing below defers a fact. What IS sequenced is
|
|
3266
|
-
* the card's departure: the button sweeps its accent left to right while the
|
|
3267
|
-
* tick draws and the label turns to "Added", and only then does the card
|
|
3268
|
-
* leave and the seat fly to the tray. Dismissing on the click cut that sweep
|
|
3269
|
-
* off after about one frame — the widget was animating a moment nobody could
|
|
3270
|
-
* see, which is worse than not animating it.
|
|
3271
|
-
*
|
|
3272
|
-
* Reduced motion takes the old path exactly: no sweep, no wait.
|
|
3273
|
-
*/
|
|
3274
|
-
private commitConfirm;
|
|
3286
|
+
/** @internal The card's own button calls the card; this is the seam the
|
|
3287
|
+
* widget's tests press. */
|
|
3288
|
+
/** @internal */ commitConfirm(): Promise<void>;
|
|
3275
3289
|
private cancelConfirm;
|
|
3276
3290
|
private closeConfirm;
|
|
3291
|
+
/** See `./pickerConfirmCard`; kept as members because the widget's tests
|
|
3292
|
+
* call and replace both on the instance. */
|
|
3293
|
+
private inviteCommit;
|
|
3294
|
+
private addSeatLabel;
|
|
3277
3295
|
private seatViewEnabled;
|
|
3278
3296
|
/** Every bookable seat (cached) — neighbor heads for the generated panorama. */
|
|
3279
3297
|
/** @internal */ allSeats(): ExpandedSeat[];
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PickerSeat, PickerGAArea, PickerMapTheme, PickerTransport, PickerSelectionValidator, RendererViewMode, PickerSelectionValidity, ChartTheme, FloorLabelStyle, LodRung, SectionSummary, PickerAccessNeed, SeatHoverDetails, AvailabilityRefreshOutcome, PickerController,
|
|
1
|
+
import { PickerSeat, PickerGAArea, PickerMapTheme, PickerTransport, PickerSelectionValidator, RendererViewMode, PickerSelectionValidity, ChartTheme, AccessibilityType, FloorLabelStyle, LodRung, SectionSummary, PickerAccessNeed, SeatHoverDetails, AccessibleSectionStep, AvailabilityRefreshOutcome, PickerController, ExpandedSeat } from '@seatlayer/core';
|
|
2
2
|
export { ExpandedSeat, PickerMapTheme, PickerSelectionValidator, PickerSelectionValidity, PickerSelectionViolation, RendererViewMode, SeatHoverDetails } from '@seatlayer/core';
|
|
3
3
|
import { T as ThemeMode } from './channelsMode-goczEzyt.js';
|
|
4
4
|
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, U as InventoryBookingObject, V as InventoryBookingState, W as InventoryBookingsPage, X as InventoryBookingsQuery, Y as LogEntry, Z as LogPage, _ as ManageApi, $ as ManageApiError, a0 as ReportByStatus, a1 as ReportCategoryMeta, a2 as ReportCategoryRow, a3 as ReportResult, a4 as SeatManager, a5 as SeatManagerActionResult, a6 as SeatManagerActivity, a7 as SeatManagerCapability, a8 as SeatManagerConnection, a9 as SeatManagerFilteredSection, aa as SeatManagerMode, ab as SeatManagerOptions, ac as SeatManagerSelectionValidity, ad as SeatManagerTallies, ae as SelectionSourceRow } from './channelsMode-goczEzyt.js';
|
|
@@ -1377,6 +1377,23 @@ interface SeatingChartPickerState {
|
|
|
1377
1377
|
label: string;
|
|
1378
1378
|
displayLabel?: string;
|
|
1379
1379
|
zoneId?: string;
|
|
1380
|
+
/**
|
|
1381
|
+
* Free spaces in THIS section for each provision the event offers —
|
|
1382
|
+
* `{ wheelchair: 2, companion: 2 }`. `capability: section-access-counts-v1`.
|
|
1383
|
+
*
|
|
1384
|
+
* The same numbers the web menu's spread hint is built from, so a native
|
|
1385
|
+
* shell can draw its own "where" instead of only dimming the map. A shell
|
|
1386
|
+
* that filtered to fifteen wheelchair spaces scattered round a bowl had
|
|
1387
|
+
* nothing to point at; these are the sections to point at.
|
|
1388
|
+
*
|
|
1389
|
+
* PRESENT-ONLY, at every level: a type appears only when the engine
|
|
1390
|
+
* counted it and found at least one free, and the whole field is absent
|
|
1391
|
+
* for a section that holds none — and also before a renderer exists,
|
|
1392
|
+
* which is why absent must be read as NOT COUNTED and never as zero. It
|
|
1393
|
+
* describes the floor the map is currently on, like everything else the
|
|
1394
|
+
* renderer answers.
|
|
1395
|
+
*/
|
|
1396
|
+
accessibleFree?: Partial<Record<AccessibilityType, number>>;
|
|
1380
1397
|
}>;
|
|
1381
1398
|
gaAreas: GAAreaAvailability[];
|
|
1382
1399
|
bestAvailableZones: Array<{
|
|
@@ -1884,6 +1901,11 @@ declare class SeatingChart {
|
|
|
1884
1901
|
setRung(rung: LodRung): void;
|
|
1885
1902
|
setCategoryFilter(categoryKeys: string[] | null, focus?: boolean): void;
|
|
1886
1903
|
setAccessibilityFilter(types: string[] | null): void;
|
|
1904
|
+
/** Fly to the matches of the filter already on, leaving the filter alone. */
|
|
1905
|
+
focusAccessibilityFilter(): void;
|
|
1906
|
+
/** Step to the next section holding a free matching space, framing the
|
|
1907
|
+
* spaces rather than the stand. Null when nothing matches. */
|
|
1908
|
+
focusNextAccessibleSection(types?: string[] | null): AccessibleSectionStep | null;
|
|
1887
1909
|
setCommercialLimitedFilter(on: boolean): void;
|
|
1888
1910
|
/** Current selection with prices resolved from the chart categories. */
|
|
1889
1911
|
getSelection(): SelectedSeat[];
|
|
@@ -2783,7 +2805,11 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
2783
2805
|
private tipPinned;
|
|
2784
2806
|
private tipMarkedHoverLabel;
|
|
2785
2807
|
private lastPointerType;
|
|
2786
|
-
/** @internal
|
|
2808
|
+
/** @internal The mounted confirm card. A facade over ConfirmCard in both
|
|
2809
|
+
* directions — the widget's own callers, its tests and the toast placer all
|
|
2810
|
+
* read and assign it as the plain field it used to be. */
|
|
2811
|
+
/** @internal */ get confirmEl(): HTMLDivElement | null;
|
|
2812
|
+
/** @internal */ set confirmEl(el: HTMLDivElement | null);
|
|
2787
2813
|
/** Light / dark / auto, or null when the widget is not managing a mode at
|
|
2788
2814
|
* all — which is the default, and is byte-for-byte the old behaviour. */
|
|
2789
2815
|
private themeMode;
|
|
@@ -2793,7 +2819,11 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
2793
2819
|
* the closure that says so once the render facts exist to say it with. */
|
|
2794
2820
|
private seatsRevealed;
|
|
2795
2821
|
private seatsRevealedReport;
|
|
2796
|
-
|
|
2822
|
+
/** The seat the confirm card is about — the same facade as `confirmEl`. */
|
|
2823
|
+
private get confirmSeat();
|
|
2824
|
+
private set confirmSeat(value);
|
|
2825
|
+
/** The confirm card owns its element and its candidate seat. */
|
|
2826
|
+
private confirmCardCache;
|
|
2797
2827
|
private suppressConfirmationSeatId;
|
|
2798
2828
|
private tableDialogEl;
|
|
2799
2829
|
private tableDialog;
|
|
@@ -2916,19 +2946,6 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
2916
2946
|
private framedFs;
|
|
2917
2947
|
/** Last height (px) posted to a host frame; dedupes redundant reports. */
|
|
2918
2948
|
private lastPostedHeight;
|
|
2919
|
-
/** True when the chart carries a real performance anchor — a stage-kind shape.
|
|
2920
|
-
* Every chart has a `focalPoint` (a bare look-at coordinate), so its presence
|
|
2921
|
-
* alone never justifies a "to stage" claim; only an actual stage does. */
|
|
2922
|
-
private chartHasStage;
|
|
2923
|
-
/**
|
|
2924
|
-
* Eager sightline preview for the confirm card: the organizer's real view
|
|
2925
|
-
* photo, or — only when the chart has an actual stage to look at — a generated
|
|
2926
|
-
* forward view plus an approximate distance-to-stage line. On a stageless
|
|
2927
|
-
* chart both the distance claim and the generic stage silhouette are
|
|
2928
|
-
* invented promises, so we suppress them; a real attached photo always shows.
|
|
2929
|
-
* (OV-52)
|
|
2930
|
-
*/
|
|
2931
|
-
private confirmThumbHtml;
|
|
2932
2949
|
/** See `./seatViewThumb`, which the native bridge answers from as well. */
|
|
2933
2950
|
private deliverableViewReference;
|
|
2934
2951
|
/** True when the picker is rendered inside an iframe (snippet embed at /e/:key). */
|
|
@@ -3037,9 +3054,42 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3037
3054
|
* seats the buyer cannot see.
|
|
3038
3055
|
*/
|
|
3039
3056
|
private focusSeatsForFilter;
|
|
3057
|
+
/**
|
|
3058
|
+
* Say what just happened when the camera could not say it.
|
|
3059
|
+
*
|
|
3060
|
+
* Fifteen wheelchair spaces in fifteen sections around a bowl have no "there"
|
|
3061
|
+
* to fly to: the framing call frames the whole venue, which is the view the
|
|
3062
|
+
* buyer was already looking at, so from their side the map dimmed and nothing
|
|
3063
|
+
* else changed. The overview now marks the sections that carry them; this is
|
|
3064
|
+
* the sentence that tells the buyer to look for those marks. Said only for
|
|
3065
|
+
* that shape — a tight cluster is dived into and explains itself.
|
|
3066
|
+
*/
|
|
3067
|
+
private explainAccessibilitySpread;
|
|
3068
|
+
/**
|
|
3069
|
+
* Put the filter on the map and on everything that quotes the map.
|
|
3070
|
+
*
|
|
3071
|
+
* EVERY DOOR RUNS THIS ONE BODY — the ♿ menu, host code, and the native
|
|
3072
|
+
* bridge through it — because each surface that was updated on only one of
|
|
3073
|
+
* those paths went on quoting the unfiltered venue:
|
|
3074
|
+
*
|
|
3075
|
+
* • the price chips carry free counts, and a filter changes what "free"
|
|
3076
|
+
* means; left unsynced they offered bands the dimmed map no longer does;
|
|
3077
|
+
* • the minimap outlines what the map is showing, so an unrefreshed one
|
|
3078
|
+
* drew the buyer a venue they were no longer being offered;
|
|
3079
|
+
* • 3D applies the filter as its own dim. The 2D one is Konva opacity,
|
|
3080
|
+
* which the GL view never sees — `seatState3dFor` knows how to dim for
|
|
3081
|
+
* it, but nothing was asking it to, so a buyer who filtered to wheelchair
|
|
3082
|
+
* places and switched to 3D got the whole venue back, undimmed, with the
|
|
3083
|
+
* switch still reading as on.
|
|
3084
|
+
*/
|
|
3085
|
+
private applyAccessibilityFilter;
|
|
3040
3086
|
/** Turn the buyer's accessibility filter on or off from host code. Mirrors
|
|
3041
3087
|
* the bridge command and the menu, so the three never diverge. */
|
|
3042
3088
|
setAccessibilityFilter(types: AccessibilityType[] | null): void;
|
|
3089
|
+
/** Fly to what the accessibility filter ALREADY ON matched, without
|
|
3090
|
+
* toggling it — `picker.focusAccessibilityFilter` on the native bridge, for
|
|
3091
|
+
* a shell whose own chips are drawn outside the widget. */
|
|
3092
|
+
focusAccessibilityFilter(): void;
|
|
3043
3093
|
private dockLayoutChrome;
|
|
3044
3094
|
/** The "Need more time?" prompt shown in the hold's final EXTEND_PROMPT_MS. */
|
|
3045
3095
|
private buildExtendPrompt;
|
|
@@ -3221,59 +3271,27 @@ declare class SeatPicker implements GaPromptPicker {
|
|
|
3221
3271
|
private confirmTableDialog;
|
|
3222
3272
|
private cancelTableDialog;
|
|
3223
3273
|
private dismissTableDialog;
|
|
3224
|
-
/** @internal */ showConfirm(seat: ExpandedSeat): void;
|
|
3225
3274
|
/**
|
|
3226
|
-
*
|
|
3227
|
-
*
|
|
3228
|
-
* The confirm card arrives with two buttons and nothing saying which one
|
|
3229
|
-
* carries the decision. So the commit button shimmers shortly after the card
|
|
3230
|
-
* lands and then breathes — and stops at the first sign of a person touching
|
|
3231
|
-
* the card at all, not after a fixed count. An invitation that keeps being
|
|
3232
|
-
* made after it has been received is nagging, which is why the stop is bound
|
|
3233
|
-
* to three different first-contacts rather than to a timer.
|
|
3275
|
+
* The confirm card, built on first use.
|
|
3234
3276
|
*
|
|
3235
|
-
*
|
|
3236
|
-
*
|
|
3237
|
-
*
|
|
3277
|
+
* Every host member is a function that calls back through `this`, never a
|
|
3278
|
+
* captured value: the widget's tests replace `dismissConfirm`,
|
|
3279
|
+
* `reducedMotion`, `scheduleMotion`, `syncTray`, `canOffer3d`, `enter3d` and
|
|
3280
|
+
* `buyerAssetUrls` on the INSTANCE, and the card has to see those.
|
|
3238
3281
|
*/
|
|
3239
|
-
private
|
|
3240
|
-
/**
|
|
3241
|
-
* What the confirm card's commit button says.
|
|
3242
|
-
*
|
|
3243
|
-
* "Select" named the mechanism, not the act — on a card already showing Row,
|
|
3244
|
-
* Seat and a price, the one control that decides the purchase was the least
|
|
3245
|
-
* specific thing on it. It names the act instead.
|
|
3246
|
-
*
|
|
3247
|
-
* NO PRICE ON THE BUTTON (owner call 2026-09-02). "Add seat · $180" was tried
|
|
3248
|
-
* and wrapped the button to two lines beside a one-line Cancel on a 310px
|
|
3249
|
-
* phone card. The amount is already the largest thing in the band directly
|
|
3250
|
-
* above, so putting it on the button bought a second copy of a fact the
|
|
3251
|
-
* buyer is looking at and cost the row its shape.
|
|
3252
|
-
*
|
|
3253
|
-
* A seat only. A booth, a table or a general-admission line keeps the
|
|
3254
|
-
* existing wording rather than being told it is adding a "seat" — those
|
|
3255
|
-
* surfaces have their own nouns (the table dialog says "Select whole table"),
|
|
3256
|
-
* and a wrong noun is worse than a general verb.
|
|
3257
|
-
*/
|
|
3258
|
-
private addSeatLabel;
|
|
3282
|
+
private get confirmCard();
|
|
3283
|
+
/** @internal */ showConfirm(seat: ExpandedSeat): void;
|
|
3259
3284
|
private reanchorConfirm;
|
|
3260
3285
|
private dismissConfirm;
|
|
3261
|
-
/**
|
|
3262
|
-
*
|
|
3263
|
-
|
|
3264
|
-
* STATE FIRST, ALWAYS. The cart, the totals and the 3D snapshot update on the
|
|
3265
|
-
* same tick as the click; nothing below defers a fact. What IS sequenced is
|
|
3266
|
-
* the card's departure: the button sweeps its accent left to right while the
|
|
3267
|
-
* tick draws and the label turns to "Added", and only then does the card
|
|
3268
|
-
* leave and the seat fly to the tray. Dismissing on the click cut that sweep
|
|
3269
|
-
* off after about one frame — the widget was animating a moment nobody could
|
|
3270
|
-
* see, which is worse than not animating it.
|
|
3271
|
-
*
|
|
3272
|
-
* Reduced motion takes the old path exactly: no sweep, no wait.
|
|
3273
|
-
*/
|
|
3274
|
-
private commitConfirm;
|
|
3286
|
+
/** @internal The card's own button calls the card; this is the seam the
|
|
3287
|
+
* widget's tests press. */
|
|
3288
|
+
/** @internal */ commitConfirm(): Promise<void>;
|
|
3275
3289
|
private cancelConfirm;
|
|
3276
3290
|
private closeConfirm;
|
|
3291
|
+
/** See `./pickerConfirmCard`; kept as members because the widget's tests
|
|
3292
|
+
* call and replace both on the instance. */
|
|
3293
|
+
private inviteCommit;
|
|
3294
|
+
private addSeatLabel;
|
|
3277
3295
|
private seatViewEnabled;
|
|
3278
3296
|
/** Every bookable seat (cached) — neighbor heads for the generated panorama. */
|
|
3279
3297
|
/** @internal */ allSeats(): ExpandedSeat[];
|