@seatlayer/js 0.28.4 → 0.30.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 +32 -5
- package/dist/index.cjs +370 -22
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +104 -4
- package/dist/index.d.ts +104 -4
- package/dist/index.js +365 -23
- package/dist/index.js.map +1 -1
- package/package.json +5 -3
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PickerSeat, SeatHoverDetails, PickerTransport,
|
|
1
|
+
import { PickerSeat, RendererViewMode, SeatHoverDetails, PickerTransport, ChartDoc, AvailabilityRule, ChartTheme, ExpandedSeat } from '@seatlayer/core';
|
|
2
2
|
export { ExpandedSeat, SeatHoverDetails } from '@seatlayer/core';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -53,6 +53,7 @@ interface BestAvailableResult {
|
|
|
53
53
|
labels: string[];
|
|
54
54
|
seats?: PickerSeat[];
|
|
55
55
|
items?: HoldResult['items'];
|
|
56
|
+
zoneId?: string;
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
/**
|
|
@@ -75,6 +76,9 @@ interface GAAreaAvailability {
|
|
|
75
76
|
categoryKey: string;
|
|
76
77
|
price: number;
|
|
77
78
|
currency: string;
|
|
79
|
+
/** Buyer-facing copy authored separately from stable inventory identity. */
|
|
80
|
+
displayLabel?: string;
|
|
81
|
+
displayType?: string;
|
|
78
82
|
tiers?: Array<{
|
|
79
83
|
id: string;
|
|
80
84
|
name: string;
|
|
@@ -111,6 +115,11 @@ interface SeatingChartOptions {
|
|
|
111
115
|
* Toggleable later with setColorblindSafe().
|
|
112
116
|
*/
|
|
113
117
|
colorblindSafe?: boolean;
|
|
118
|
+
/** Initial canvas projection.
|
|
119
|
+
* @deprecated `'isometric'` and `'perspective'` are retired in favour of the
|
|
120
|
+
* real 3D venue view (`setBuyerView('venue3d')`); they remain accepted for
|
|
121
|
+
* source compatibility and will be removed in the next major. Use `'flat'`. */
|
|
122
|
+
initialView?: RendererViewMode;
|
|
114
123
|
/**
|
|
115
124
|
* Built-in seat tooltip on mouse hover (seat · category · price · status).
|
|
116
125
|
* Rendered inside the widget so every host gets it; default true. Turn off
|
|
@@ -259,6 +268,13 @@ declare class SeatingChart {
|
|
|
259
268
|
setFloor(floorId: string): void;
|
|
260
269
|
/** Toggle colorblind-safe rendering at runtime (see options.colorblindSafe). */
|
|
261
270
|
setColorblindSafe(on: boolean): void;
|
|
271
|
+
/** Switch the 2D canvas projection.
|
|
272
|
+
* @deprecated `'isometric'` and `'perspective'` are retired in favour of the
|
|
273
|
+
* real 3D venue view (`setBuyerView('venue3d')`); accepted for source
|
|
274
|
+
* compatibility until the next major. */
|
|
275
|
+
setViewMode(mode: RendererViewMode): void;
|
|
276
|
+
/** Current canvas projection. */
|
|
277
|
+
getViewMode(): RendererViewMode;
|
|
262
278
|
/** Zoom in one step (same increment as the wheel/pinch gesture). */
|
|
263
279
|
zoomIn(): void;
|
|
264
280
|
/** Zoom out one step. */
|
|
@@ -638,9 +654,26 @@ interface SeatPickerOptions {
|
|
|
638
654
|
currency?: string;
|
|
639
655
|
/** Colorblind-safe rendering (Okabe-Ito palette, hollow booked seats). */
|
|
640
656
|
colorblindSafe?: boolean;
|
|
641
|
-
/** Initial map projection.
|
|
642
|
-
*
|
|
657
|
+
/** Initial map projection. Buyers now toggle **Map (flat 2D) + 3D** only; the
|
|
658
|
+
* legacy `perspective` (2.5D) value is still ACCEPTED for source compatibility
|
|
659
|
+
* but is deprecated — it is coerced to `flat` with a one-time console warning.
|
|
660
|
+
* The 3D venue view is entered from the Map/3D control, not this option. */
|
|
643
661
|
initialView?: RendererViewMode;
|
|
662
|
+
/**
|
|
663
|
+
* Offer the interactive 3D venue view (Map | 3D toggle + a "See it in 3D"
|
|
664
|
+
* action on the seat-confirm card). Default true. The 3D button is shown only
|
|
665
|
+
* when this is not false AND the browser exposes WebGL2; there are ZERO GL
|
|
666
|
+
* bytes on the wire until the buyer actually opens 3D (the OGL chunk is
|
|
667
|
+
* dynamically imported on first use). Set false for embed hosts that must
|
|
668
|
+
* stay strictly 2D. */
|
|
669
|
+
enable3D?: boolean;
|
|
670
|
+
/**
|
|
671
|
+
* Optional analytics sink for the widget's own journey events. Currently emits
|
|
672
|
+
* the 3D venue-view journey (`3d_opened`, `3d_orbit_engaged`, `3d_seat_picked`,
|
|
673
|
+
* `3d_cinematic_played`/`_skipped`/`_cancelled`, `3d_panorama_opened`/`_closed`)
|
|
674
|
+
* with `{ surface: 'buyer' }` merged into the props. A throwing sink never
|
|
675
|
+
* breaks the widget. Route it to your product analytics (e.g. PostHog). */
|
|
676
|
+
onAnalytics?: (event: string, props: Record<string, unknown>) => void;
|
|
644
677
|
/**
|
|
645
678
|
* Hide the "Powered by SeatLayer" attribution badge in the side panel foot.
|
|
646
679
|
* The chart theme's own `hideBadge` flag (paid orgs) also hides it — the badge
|
|
@@ -770,6 +803,14 @@ declare class SeatPicker {
|
|
|
770
803
|
private cbSafe;
|
|
771
804
|
private rungsEl;
|
|
772
805
|
private projectionEl;
|
|
806
|
+
private buyerView;
|
|
807
|
+
private view3dEl;
|
|
808
|
+
private view3dHandle;
|
|
809
|
+
/** Monotonic token so a stale async mount (buyer left before OGL finished
|
|
810
|
+
* loading) never installs its handle over a newer state. */
|
|
811
|
+
private view3dGen;
|
|
812
|
+
/** Seat whose 2D confirm card launched "See it in 3D"; re-shown on return. */
|
|
813
|
+
private view3dReturnSeat;
|
|
773
814
|
private floorsEl;
|
|
774
815
|
private secCardEl;
|
|
775
816
|
private viewEl;
|
|
@@ -819,6 +860,10 @@ declare class SeatPicker {
|
|
|
819
860
|
* (OV-52)
|
|
820
861
|
*/
|
|
821
862
|
private confirmThumbHtml;
|
|
863
|
+
/** "See it in 3D" (2D) / "View from this seat" (already in 3D) action for the
|
|
864
|
+
* confirm card. Only when 3D is available — the purchase-moment bridge into
|
|
865
|
+
* the cinematic that reaches buyers who never press the Map | 3D toggle. */
|
|
866
|
+
private see3dConfirmHtml;
|
|
822
867
|
/** Minimal HTML/attribute escaper for buyer-authored commercial text (notes). */
|
|
823
868
|
private escCx;
|
|
824
869
|
/** Localized "Restricted view" / "Obstructed view" label for a seat's flags,
|
|
@@ -1001,6 +1046,9 @@ declare class SeatPicker {
|
|
|
1001
1046
|
/** Reflect the engine's current LOD rung onto the pill group. */
|
|
1002
1047
|
private syncRung;
|
|
1003
1048
|
private syncProjection;
|
|
1049
|
+
/** Can this picker offer the 3D venue view? Requires the option (default on)
|
|
1050
|
+
* and WebGL2, and a chart to render. */
|
|
1051
|
+
private canOffer3d;
|
|
1004
1052
|
/** Reflect the active floor onto the switcher rail. */
|
|
1005
1053
|
private syncFloors;
|
|
1006
1054
|
/** Show (or clear, on null) the tapped-section summary card. */
|
|
@@ -1118,10 +1166,62 @@ declare class SeatPicker {
|
|
|
1118
1166
|
* cross-surface preference, and the in-widget button's pressed state together
|
|
1119
1167
|
* so the two controls never diverge. */
|
|
1120
1168
|
setColorblindSafe(on: boolean): void;
|
|
1121
|
-
/** Switch the
|
|
1169
|
+
/** Switch the underlying 2D renderer projection (flat / isometric). The buyer
|
|
1170
|
+
* UI no longer exposes `perspective`; it is coerced to `flat`. */
|
|
1122
1171
|
setViewMode(mode: RendererViewMode): void;
|
|
1123
1172
|
/** Current buyer canvas projection. */
|
|
1124
1173
|
getViewMode(): RendererViewMode;
|
|
1174
|
+
/** `perspective` (2.5D) is retired from the buyer surface — accept it for
|
|
1175
|
+
* source compatibility but coerce to `flat` with a one-time deprecation warn. */
|
|
1176
|
+
private perspectiveWarned;
|
|
1177
|
+
private normalizeInitialView;
|
|
1178
|
+
/** Current buyer view: the flat map, or the interactive 3D venue. */
|
|
1179
|
+
getBuyerView(): 'map' | 'venue3d';
|
|
1180
|
+
/**
|
|
1181
|
+
* Switch between the flat seat **Map** and the interactive **3D venue** view —
|
|
1182
|
+
* the same control the buyer's on-widget `Map | 3D` toggle drives.
|
|
1183
|
+
*
|
|
1184
|
+
* Entering `'venue3d'` with `opts.flyToSeatId` runs the cinematic tour: the
|
|
1185
|
+
* camera flies to the seat and holds in the live scene (a chip offers the
|
|
1186
|
+
* 360° view-from-seat) —
|
|
1187
|
+
* the widget enters 3D and auto-flies the camera to that seat, dissolving into
|
|
1188
|
+
* its view-from-seat panorama (the same chain as tapping "See the view from
|
|
1189
|
+
* here" on a seat's confirm card). When the widget is **already** in the 3D
|
|
1190
|
+
* view, the camera simply flies to the requested seat — the GL scene is not
|
|
1191
|
+
* torn down or rebuilt, so there is no flash or re-entry.
|
|
1192
|
+
*
|
|
1193
|
+
* No-op when the view is unchanged and no `flyToSeatId` is given, or when 3D is
|
|
1194
|
+
* unavailable for this chart.
|
|
1195
|
+
*
|
|
1196
|
+
* @param view `'map'` for the flat picker, `'venue3d'` for the 3D venue.
|
|
1197
|
+
* @param opts.flyToSeatId When entering (or already in) `'venue3d'`, the seat
|
|
1198
|
+
* id to fly the camera to — cinematic → panorama.
|
|
1199
|
+
* Ignored when `view` is `'map'`.
|
|
1200
|
+
*
|
|
1201
|
+
* @example
|
|
1202
|
+
* // Public 3D tour entry — enter 3D and fly straight to the buyer's seat:
|
|
1203
|
+
* picker.setBuyerView('venue3d', { flyToSeatId: 'A-12' });
|
|
1204
|
+
*/
|
|
1205
|
+
setBuyerView(view: 'map' | 'venue3d', opts?: {
|
|
1206
|
+
flyToSeatId?: string;
|
|
1207
|
+
}): void;
|
|
1208
|
+
/** SeatStatus → the view3d palette state. Selection is layered separately. */
|
|
1209
|
+
private seatState3dFor;
|
|
1210
|
+
/** Push the full live availability snapshot into the 3D handle (selection is
|
|
1211
|
+
* preserved inside the module). Cheap enough per status delta. */
|
|
1212
|
+
private pushAvailabilityTo3d;
|
|
1213
|
+
/** Mirror the authoritative widget selection into the 3D handle. */
|
|
1214
|
+
private syncSelectionTo3d;
|
|
1215
|
+
/** Build the view-from-seat panorama the cinematic dissolves into — reuses the
|
|
1216
|
+
* exact input path as the 2D `openSeatView` (organizer photo, else generated). */
|
|
1217
|
+
private seatViewFor3d;
|
|
1218
|
+
/** Route the module's decoupled analytics into the host callback, tagged buyer. */
|
|
1219
|
+
private emit3dAnalytics;
|
|
1220
|
+
/** A 3D seat tap runs the SAME selection path as a 2D tap: toggle through the
|
|
1221
|
+
* controller, then raise the shared confirm card (bottom-sheeted in 3D). */
|
|
1222
|
+
private onView3dSeatPick;
|
|
1223
|
+
private enter3d;
|
|
1224
|
+
private exit3d;
|
|
1125
1225
|
/** Current active/restored hold reflected in the tray. */
|
|
1126
1226
|
getCurrentHold(): HoldResult | null;
|
|
1127
1227
|
/** Explicit host-driven hold restore (automatic session restore is on by default). */
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PickerSeat, SeatHoverDetails, PickerTransport,
|
|
1
|
+
import { PickerSeat, RendererViewMode, SeatHoverDetails, PickerTransport, ChartDoc, AvailabilityRule, ChartTheme, ExpandedSeat } from '@seatlayer/core';
|
|
2
2
|
export { ExpandedSeat, SeatHoverDetails } from '@seatlayer/core';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -53,6 +53,7 @@ interface BestAvailableResult {
|
|
|
53
53
|
labels: string[];
|
|
54
54
|
seats?: PickerSeat[];
|
|
55
55
|
items?: HoldResult['items'];
|
|
56
|
+
zoneId?: string;
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
/**
|
|
@@ -75,6 +76,9 @@ interface GAAreaAvailability {
|
|
|
75
76
|
categoryKey: string;
|
|
76
77
|
price: number;
|
|
77
78
|
currency: string;
|
|
79
|
+
/** Buyer-facing copy authored separately from stable inventory identity. */
|
|
80
|
+
displayLabel?: string;
|
|
81
|
+
displayType?: string;
|
|
78
82
|
tiers?: Array<{
|
|
79
83
|
id: string;
|
|
80
84
|
name: string;
|
|
@@ -111,6 +115,11 @@ interface SeatingChartOptions {
|
|
|
111
115
|
* Toggleable later with setColorblindSafe().
|
|
112
116
|
*/
|
|
113
117
|
colorblindSafe?: boolean;
|
|
118
|
+
/** Initial canvas projection.
|
|
119
|
+
* @deprecated `'isometric'` and `'perspective'` are retired in favour of the
|
|
120
|
+
* real 3D venue view (`setBuyerView('venue3d')`); they remain accepted for
|
|
121
|
+
* source compatibility and will be removed in the next major. Use `'flat'`. */
|
|
122
|
+
initialView?: RendererViewMode;
|
|
114
123
|
/**
|
|
115
124
|
* Built-in seat tooltip on mouse hover (seat · category · price · status).
|
|
116
125
|
* Rendered inside the widget so every host gets it; default true. Turn off
|
|
@@ -259,6 +268,13 @@ declare class SeatingChart {
|
|
|
259
268
|
setFloor(floorId: string): void;
|
|
260
269
|
/** Toggle colorblind-safe rendering at runtime (see options.colorblindSafe). */
|
|
261
270
|
setColorblindSafe(on: boolean): void;
|
|
271
|
+
/** Switch the 2D canvas projection.
|
|
272
|
+
* @deprecated `'isometric'` and `'perspective'` are retired in favour of the
|
|
273
|
+
* real 3D venue view (`setBuyerView('venue3d')`); accepted for source
|
|
274
|
+
* compatibility until the next major. */
|
|
275
|
+
setViewMode(mode: RendererViewMode): void;
|
|
276
|
+
/** Current canvas projection. */
|
|
277
|
+
getViewMode(): RendererViewMode;
|
|
262
278
|
/** Zoom in one step (same increment as the wheel/pinch gesture). */
|
|
263
279
|
zoomIn(): void;
|
|
264
280
|
/** Zoom out one step. */
|
|
@@ -638,9 +654,26 @@ interface SeatPickerOptions {
|
|
|
638
654
|
currency?: string;
|
|
639
655
|
/** Colorblind-safe rendering (Okabe-Ito palette, hollow booked seats). */
|
|
640
656
|
colorblindSafe?: boolean;
|
|
641
|
-
/** Initial map projection.
|
|
642
|
-
*
|
|
657
|
+
/** Initial map projection. Buyers now toggle **Map (flat 2D) + 3D** only; the
|
|
658
|
+
* legacy `perspective` (2.5D) value is still ACCEPTED for source compatibility
|
|
659
|
+
* but is deprecated — it is coerced to `flat` with a one-time console warning.
|
|
660
|
+
* The 3D venue view is entered from the Map/3D control, not this option. */
|
|
643
661
|
initialView?: RendererViewMode;
|
|
662
|
+
/**
|
|
663
|
+
* Offer the interactive 3D venue view (Map | 3D toggle + a "See it in 3D"
|
|
664
|
+
* action on the seat-confirm card). Default true. The 3D button is shown only
|
|
665
|
+
* when this is not false AND the browser exposes WebGL2; there are ZERO GL
|
|
666
|
+
* bytes on the wire until the buyer actually opens 3D (the OGL chunk is
|
|
667
|
+
* dynamically imported on first use). Set false for embed hosts that must
|
|
668
|
+
* stay strictly 2D. */
|
|
669
|
+
enable3D?: boolean;
|
|
670
|
+
/**
|
|
671
|
+
* Optional analytics sink for the widget's own journey events. Currently emits
|
|
672
|
+
* the 3D venue-view journey (`3d_opened`, `3d_orbit_engaged`, `3d_seat_picked`,
|
|
673
|
+
* `3d_cinematic_played`/`_skipped`/`_cancelled`, `3d_panorama_opened`/`_closed`)
|
|
674
|
+
* with `{ surface: 'buyer' }` merged into the props. A throwing sink never
|
|
675
|
+
* breaks the widget. Route it to your product analytics (e.g. PostHog). */
|
|
676
|
+
onAnalytics?: (event: string, props: Record<string, unknown>) => void;
|
|
644
677
|
/**
|
|
645
678
|
* Hide the "Powered by SeatLayer" attribution badge in the side panel foot.
|
|
646
679
|
* The chart theme's own `hideBadge` flag (paid orgs) also hides it — the badge
|
|
@@ -770,6 +803,14 @@ declare class SeatPicker {
|
|
|
770
803
|
private cbSafe;
|
|
771
804
|
private rungsEl;
|
|
772
805
|
private projectionEl;
|
|
806
|
+
private buyerView;
|
|
807
|
+
private view3dEl;
|
|
808
|
+
private view3dHandle;
|
|
809
|
+
/** Monotonic token so a stale async mount (buyer left before OGL finished
|
|
810
|
+
* loading) never installs its handle over a newer state. */
|
|
811
|
+
private view3dGen;
|
|
812
|
+
/** Seat whose 2D confirm card launched "See it in 3D"; re-shown on return. */
|
|
813
|
+
private view3dReturnSeat;
|
|
773
814
|
private floorsEl;
|
|
774
815
|
private secCardEl;
|
|
775
816
|
private viewEl;
|
|
@@ -819,6 +860,10 @@ declare class SeatPicker {
|
|
|
819
860
|
* (OV-52)
|
|
820
861
|
*/
|
|
821
862
|
private confirmThumbHtml;
|
|
863
|
+
/** "See it in 3D" (2D) / "View from this seat" (already in 3D) action for the
|
|
864
|
+
* confirm card. Only when 3D is available — the purchase-moment bridge into
|
|
865
|
+
* the cinematic that reaches buyers who never press the Map | 3D toggle. */
|
|
866
|
+
private see3dConfirmHtml;
|
|
822
867
|
/** Minimal HTML/attribute escaper for buyer-authored commercial text (notes). */
|
|
823
868
|
private escCx;
|
|
824
869
|
/** Localized "Restricted view" / "Obstructed view" label for a seat's flags,
|
|
@@ -1001,6 +1046,9 @@ declare class SeatPicker {
|
|
|
1001
1046
|
/** Reflect the engine's current LOD rung onto the pill group. */
|
|
1002
1047
|
private syncRung;
|
|
1003
1048
|
private syncProjection;
|
|
1049
|
+
/** Can this picker offer the 3D venue view? Requires the option (default on)
|
|
1050
|
+
* and WebGL2, and a chart to render. */
|
|
1051
|
+
private canOffer3d;
|
|
1004
1052
|
/** Reflect the active floor onto the switcher rail. */
|
|
1005
1053
|
private syncFloors;
|
|
1006
1054
|
/** Show (or clear, on null) the tapped-section summary card. */
|
|
@@ -1118,10 +1166,62 @@ declare class SeatPicker {
|
|
|
1118
1166
|
* cross-surface preference, and the in-widget button's pressed state together
|
|
1119
1167
|
* so the two controls never diverge. */
|
|
1120
1168
|
setColorblindSafe(on: boolean): void;
|
|
1121
|
-
/** Switch the
|
|
1169
|
+
/** Switch the underlying 2D renderer projection (flat / isometric). The buyer
|
|
1170
|
+
* UI no longer exposes `perspective`; it is coerced to `flat`. */
|
|
1122
1171
|
setViewMode(mode: RendererViewMode): void;
|
|
1123
1172
|
/** Current buyer canvas projection. */
|
|
1124
1173
|
getViewMode(): RendererViewMode;
|
|
1174
|
+
/** `perspective` (2.5D) is retired from the buyer surface — accept it for
|
|
1175
|
+
* source compatibility but coerce to `flat` with a one-time deprecation warn. */
|
|
1176
|
+
private perspectiveWarned;
|
|
1177
|
+
private normalizeInitialView;
|
|
1178
|
+
/** Current buyer view: the flat map, or the interactive 3D venue. */
|
|
1179
|
+
getBuyerView(): 'map' | 'venue3d';
|
|
1180
|
+
/**
|
|
1181
|
+
* Switch between the flat seat **Map** and the interactive **3D venue** view —
|
|
1182
|
+
* the same control the buyer's on-widget `Map | 3D` toggle drives.
|
|
1183
|
+
*
|
|
1184
|
+
* Entering `'venue3d'` with `opts.flyToSeatId` runs the cinematic tour: the
|
|
1185
|
+
* camera flies to the seat and holds in the live scene (a chip offers the
|
|
1186
|
+
* 360° view-from-seat) —
|
|
1187
|
+
* the widget enters 3D and auto-flies the camera to that seat, dissolving into
|
|
1188
|
+
* its view-from-seat panorama (the same chain as tapping "See the view from
|
|
1189
|
+
* here" on a seat's confirm card). When the widget is **already** in the 3D
|
|
1190
|
+
* view, the camera simply flies to the requested seat — the GL scene is not
|
|
1191
|
+
* torn down or rebuilt, so there is no flash or re-entry.
|
|
1192
|
+
*
|
|
1193
|
+
* No-op when the view is unchanged and no `flyToSeatId` is given, or when 3D is
|
|
1194
|
+
* unavailable for this chart.
|
|
1195
|
+
*
|
|
1196
|
+
* @param view `'map'` for the flat picker, `'venue3d'` for the 3D venue.
|
|
1197
|
+
* @param opts.flyToSeatId When entering (or already in) `'venue3d'`, the seat
|
|
1198
|
+
* id to fly the camera to — cinematic → panorama.
|
|
1199
|
+
* Ignored when `view` is `'map'`.
|
|
1200
|
+
*
|
|
1201
|
+
* @example
|
|
1202
|
+
* // Public 3D tour entry — enter 3D and fly straight to the buyer's seat:
|
|
1203
|
+
* picker.setBuyerView('venue3d', { flyToSeatId: 'A-12' });
|
|
1204
|
+
*/
|
|
1205
|
+
setBuyerView(view: 'map' | 'venue3d', opts?: {
|
|
1206
|
+
flyToSeatId?: string;
|
|
1207
|
+
}): void;
|
|
1208
|
+
/** SeatStatus → the view3d palette state. Selection is layered separately. */
|
|
1209
|
+
private seatState3dFor;
|
|
1210
|
+
/** Push the full live availability snapshot into the 3D handle (selection is
|
|
1211
|
+
* preserved inside the module). Cheap enough per status delta. */
|
|
1212
|
+
private pushAvailabilityTo3d;
|
|
1213
|
+
/** Mirror the authoritative widget selection into the 3D handle. */
|
|
1214
|
+
private syncSelectionTo3d;
|
|
1215
|
+
/** Build the view-from-seat panorama the cinematic dissolves into — reuses the
|
|
1216
|
+
* exact input path as the 2D `openSeatView` (organizer photo, else generated). */
|
|
1217
|
+
private seatViewFor3d;
|
|
1218
|
+
/** Route the module's decoupled analytics into the host callback, tagged buyer. */
|
|
1219
|
+
private emit3dAnalytics;
|
|
1220
|
+
/** A 3D seat tap runs the SAME selection path as a 2D tap: toggle through the
|
|
1221
|
+
* controller, then raise the shared confirm card (bottom-sheeted in 3D). */
|
|
1222
|
+
private onView3dSeatPick;
|
|
1223
|
+
private enter3d;
|
|
1224
|
+
private exit3d;
|
|
1125
1225
|
/** Current active/restored hold reflected in the tray. */
|
|
1126
1226
|
getCurrentHold(): HoldResult | null;
|
|
1127
1227
|
/** Explicit host-driven hold restore (automatic session restore is on by default). */
|