@seatlayer/js 0.16.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -425,6 +425,7 @@ declare class SeatPicker {
425
425
  private readonly api;
426
426
  private readonly apiBase;
427
427
  private readonly controller;
428
+ private readonly maxTickets;
428
429
  private root;
429
430
  private mapHost;
430
431
  private rendered;
@@ -456,6 +457,8 @@ declare class SeatPicker {
456
457
  private a11yFilter;
457
458
  private baQty;
458
459
  private baCat;
460
+ private bestAvailableConfirm;
461
+ private releasingHold;
459
462
  private rungsEl;
460
463
  private floorsEl;
461
464
  private secCardEl;
@@ -535,6 +538,14 @@ declare class SeatPicker {
535
538
  /** Update only the action affordance; selection callbacks must not refire. */
536
539
  private committedSelection;
537
540
  private pendingSelectionCount;
541
+ private heldGACounts;
542
+ private pendingGACount;
543
+ private heldTicketCount;
544
+ private totalTicketCount;
545
+ /** Held tickets and standing quantities consume the same order-wide cap. */
546
+ private updateSelectionCapacity;
547
+ private canAddTicket;
548
+ private pendingGATotal;
538
549
  private syncCta;
539
550
  private setCtaPhase;
540
551
  /** Session-scoped capability key: isolated by API origin and event. */
@@ -616,6 +627,7 @@ declare class SeatPicker {
616
627
  private evictTakenSelections;
617
628
  private syncTray;
618
629
  private removeHeldLabel;
630
+ private handleChangeSeats;
619
631
  private handleCta;
620
632
  private startHoldTimer;
621
633
  private stopHoldTimer;
@@ -917,6 +929,9 @@ interface SeatManagerActivity {
917
929
  /** Human verb: held / booked / released / blocked / unblocked. */
918
930
  verb: string;
919
931
  status: DoStatus;
932
+ /** Spatial context for grouped activity when the chart defines sections. */
933
+ sectionIds?: string[];
934
+ sectionLabels?: string[];
920
935
  }
921
936
  /** Fired after a successful organizer action, for host toasts/telemetry. */
922
937
  interface SeatManagerActionResult {
@@ -947,6 +962,11 @@ interface SeatManagerOptions {
947
962
  * rAF throttling on occluded tabs never leaves the board stale. Default true.
948
963
  */
949
964
  keepLiveWhileHidden?: boolean;
965
+ /**
966
+ * Opt in to camera-following for new buyer holds/bookings. Off by default so
967
+ * a live event never steals an operator's current map context.
968
+ */
969
+ followLive?: boolean;
950
970
  /** Chart + first snapshot are loaded and the board is live. */
951
971
  onReady?: () => void;
952
972
  /** Live KPI tallies changed. */
@@ -962,6 +982,8 @@ interface SeatManagerOptions {
962
982
  }>;
963
983
  /** Tool/mode changed from inside the shared cockpit. */
964
984
  onModeChange?: (mode: SeatManagerMode) => void;
985
+ /** Follow-live preference changed from inside the cockpit. */
986
+ onFollowLiveChange?: (enabled: boolean) => void;
965
987
  /** Block-mode selection changed (marquee / ⌘A / category / section / tap). */
966
988
  onSelectionChange?: (seats: ExpandedSeat[]) => void;
967
989
  /** A block/unblock/cancel action completed successfully. */
@@ -992,6 +1014,9 @@ declare class SeatManager {
992
1014
  private controlRoomSnapshot;
993
1015
  private trendWindowMinutes;
994
1016
  private heatEnabled;
1017
+ private followLive;
1018
+ private lastKpiValues;
1019
+ private activeKpiDeltas;
995
1020
  private ws;
996
1021
  private reconnectTimer;
997
1022
  private attempt;
@@ -1000,6 +1025,10 @@ declare class SeatManager {
1000
1025
  private feed;
1001
1026
  private feedTimer;
1002
1027
  private toastTimer;
1028
+ private liveEventTimer;
1029
+ private kpiCleanupTimer;
1030
+ private followLiveTimer;
1031
+ private followSeatTimer;
1003
1032
  private releaseAt;
1004
1033
  private layoutObserver;
1005
1034
  private tokenExpiresAt;
@@ -1014,12 +1043,15 @@ declare class SeatManager {
1014
1043
  private unblockAllConfirmTimer;
1015
1044
  private readonly onFullscreenChange;
1016
1045
  private readonly onKeyDown;
1046
+ private readonly onRailClick;
1017
1047
  constructor(options: SeatManagerOptions);
1018
1048
  /** Build the DOM, load the chart, subscribe to realtime, mount the board. */
1019
1049
  render(): Promise<this>;
1020
1050
  setMode(mode: SeatManagerMode): void;
1021
1051
  /** Toggle the normalized sales-velocity outline overlay without changing seat colors. */
1022
1052
  setHeatOverlay(enabled: boolean): void;
1053
+ /** Toggle opt-in camera following for new buyer hold/book events. */
1054
+ setFollowLive(enabled: boolean): void;
1023
1055
  /** Change the current-vs-previous sales window and refresh the private projection. */
1024
1056
  setTrendWindow(windowMinutes: number): Promise<ControlRoomSnapshot>;
1025
1057
  enterFullscreen(): Promise<void>;
@@ -1072,7 +1104,14 @@ declare class SeatManager {
1072
1104
  private setSeatsLocal;
1073
1105
  /** Keep the canvas painting on hidden/occluded tabs (war-room second monitor). */
1074
1106
  private afterPaint;
1075
- private flash;
1107
+ private activityColor;
1108
+ private sectionsForLabels;
1109
+ private pulseSeatLabels;
1110
+ /** Render one grouped realtime operation at the right semantic zoom level. */
1111
+ private paintSpatialActivity;
1112
+ private locateSection;
1113
+ private locateActivity;
1114
+ private showLiveEvent;
1076
1115
  private applyReportRevenue;
1077
1116
  private refreshControlRoom;
1078
1117
  private scheduleRevenueRefresh;
@@ -1088,12 +1127,14 @@ declare class SeatManager {
1088
1127
  private sectionOptions;
1089
1128
  private buildSectionOptions;
1090
1129
  private paintModeTabs;
1130
+ private paintFollowLiveButton;
1091
1131
  private paintHeatButton;
1092
1132
  private paintMomentumHelp;
1093
1133
  private paintFullscreenButton;
1094
1134
  private paintTrendWindow;
1095
1135
  private setLive;
1096
1136
  private updateZoomHint;
1137
+ private formatKpiDelta;
1097
1138
  private paintKpis;
1098
1139
  private paintRail;
1099
1140
  private renderViewRail;
package/dist/index.d.ts CHANGED
@@ -425,6 +425,7 @@ declare class SeatPicker {
425
425
  private readonly api;
426
426
  private readonly apiBase;
427
427
  private readonly controller;
428
+ private readonly maxTickets;
428
429
  private root;
429
430
  private mapHost;
430
431
  private rendered;
@@ -456,6 +457,8 @@ declare class SeatPicker {
456
457
  private a11yFilter;
457
458
  private baQty;
458
459
  private baCat;
460
+ private bestAvailableConfirm;
461
+ private releasingHold;
459
462
  private rungsEl;
460
463
  private floorsEl;
461
464
  private secCardEl;
@@ -535,6 +538,14 @@ declare class SeatPicker {
535
538
  /** Update only the action affordance; selection callbacks must not refire. */
536
539
  private committedSelection;
537
540
  private pendingSelectionCount;
541
+ private heldGACounts;
542
+ private pendingGACount;
543
+ private heldTicketCount;
544
+ private totalTicketCount;
545
+ /** Held tickets and standing quantities consume the same order-wide cap. */
546
+ private updateSelectionCapacity;
547
+ private canAddTicket;
548
+ private pendingGATotal;
538
549
  private syncCta;
539
550
  private setCtaPhase;
540
551
  /** Session-scoped capability key: isolated by API origin and event. */
@@ -616,6 +627,7 @@ declare class SeatPicker {
616
627
  private evictTakenSelections;
617
628
  private syncTray;
618
629
  private removeHeldLabel;
630
+ private handleChangeSeats;
619
631
  private handleCta;
620
632
  private startHoldTimer;
621
633
  private stopHoldTimer;
@@ -917,6 +929,9 @@ interface SeatManagerActivity {
917
929
  /** Human verb: held / booked / released / blocked / unblocked. */
918
930
  verb: string;
919
931
  status: DoStatus;
932
+ /** Spatial context for grouped activity when the chart defines sections. */
933
+ sectionIds?: string[];
934
+ sectionLabels?: string[];
920
935
  }
921
936
  /** Fired after a successful organizer action, for host toasts/telemetry. */
922
937
  interface SeatManagerActionResult {
@@ -947,6 +962,11 @@ interface SeatManagerOptions {
947
962
  * rAF throttling on occluded tabs never leaves the board stale. Default true.
948
963
  */
949
964
  keepLiveWhileHidden?: boolean;
965
+ /**
966
+ * Opt in to camera-following for new buyer holds/bookings. Off by default so
967
+ * a live event never steals an operator's current map context.
968
+ */
969
+ followLive?: boolean;
950
970
  /** Chart + first snapshot are loaded and the board is live. */
951
971
  onReady?: () => void;
952
972
  /** Live KPI tallies changed. */
@@ -962,6 +982,8 @@ interface SeatManagerOptions {
962
982
  }>;
963
983
  /** Tool/mode changed from inside the shared cockpit. */
964
984
  onModeChange?: (mode: SeatManagerMode) => void;
985
+ /** Follow-live preference changed from inside the cockpit. */
986
+ onFollowLiveChange?: (enabled: boolean) => void;
965
987
  /** Block-mode selection changed (marquee / ⌘A / category / section / tap). */
966
988
  onSelectionChange?: (seats: ExpandedSeat[]) => void;
967
989
  /** A block/unblock/cancel action completed successfully. */
@@ -992,6 +1014,9 @@ declare class SeatManager {
992
1014
  private controlRoomSnapshot;
993
1015
  private trendWindowMinutes;
994
1016
  private heatEnabled;
1017
+ private followLive;
1018
+ private lastKpiValues;
1019
+ private activeKpiDeltas;
995
1020
  private ws;
996
1021
  private reconnectTimer;
997
1022
  private attempt;
@@ -1000,6 +1025,10 @@ declare class SeatManager {
1000
1025
  private feed;
1001
1026
  private feedTimer;
1002
1027
  private toastTimer;
1028
+ private liveEventTimer;
1029
+ private kpiCleanupTimer;
1030
+ private followLiveTimer;
1031
+ private followSeatTimer;
1003
1032
  private releaseAt;
1004
1033
  private layoutObserver;
1005
1034
  private tokenExpiresAt;
@@ -1014,12 +1043,15 @@ declare class SeatManager {
1014
1043
  private unblockAllConfirmTimer;
1015
1044
  private readonly onFullscreenChange;
1016
1045
  private readonly onKeyDown;
1046
+ private readonly onRailClick;
1017
1047
  constructor(options: SeatManagerOptions);
1018
1048
  /** Build the DOM, load the chart, subscribe to realtime, mount the board. */
1019
1049
  render(): Promise<this>;
1020
1050
  setMode(mode: SeatManagerMode): void;
1021
1051
  /** Toggle the normalized sales-velocity outline overlay without changing seat colors. */
1022
1052
  setHeatOverlay(enabled: boolean): void;
1053
+ /** Toggle opt-in camera following for new buyer hold/book events. */
1054
+ setFollowLive(enabled: boolean): void;
1023
1055
  /** Change the current-vs-previous sales window and refresh the private projection. */
1024
1056
  setTrendWindow(windowMinutes: number): Promise<ControlRoomSnapshot>;
1025
1057
  enterFullscreen(): Promise<void>;
@@ -1072,7 +1104,14 @@ declare class SeatManager {
1072
1104
  private setSeatsLocal;
1073
1105
  /** Keep the canvas painting on hidden/occluded tabs (war-room second monitor). */
1074
1106
  private afterPaint;
1075
- private flash;
1107
+ private activityColor;
1108
+ private sectionsForLabels;
1109
+ private pulseSeatLabels;
1110
+ /** Render one grouped realtime operation at the right semantic zoom level. */
1111
+ private paintSpatialActivity;
1112
+ private locateSection;
1113
+ private locateActivity;
1114
+ private showLiveEvent;
1076
1115
  private applyReportRevenue;
1077
1116
  private refreshControlRoom;
1078
1117
  private scheduleRevenueRefresh;
@@ -1088,12 +1127,14 @@ declare class SeatManager {
1088
1127
  private sectionOptions;
1089
1128
  private buildSectionOptions;
1090
1129
  private paintModeTabs;
1130
+ private paintFollowLiveButton;
1091
1131
  private paintHeatButton;
1092
1132
  private paintMomentumHelp;
1093
1133
  private paintFullscreenButton;
1094
1134
  private paintTrendWindow;
1095
1135
  private setLive;
1096
1136
  private updateZoomHint;
1137
+ private formatKpiDelta;
1097
1138
  private paintKpis;
1098
1139
  private paintRail;
1099
1140
  private renderViewRail;