{"version":3,"file":"seatlayer-angular-manager.mjs","sources":["../../manager/src/seat-manager.component.ts","../../manager/src/index.ts","../../manager/src/seatlayer-angular-manager.ts"],"sourcesContent":["import {\n  ChangeDetectionStrategy,\n  Component,\n  DestroyRef,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  ViewChild,\n  inject,\n} from '@angular/core';\nimport {\n  SeatManager as CoreSeatManager,\n  type SeatManagerOptions,\n  type SeatManagerMode,\n  type EventScopedManageToken,\n  type SeatManagerTallies,\n  type SeatManagerActivity,\n  type SeatManagerActionResult,\n  type SeatManagerArea,\n  type SeatManagerConnection,\n  type SeatManagerRoomState,\n  type SeatManagerFilteredSection,\n  type SeatManagerSelectionValidity,\n  type SeatManagerCategoryPrice,\n  type EventTableBookingMode,\n  type ReportResult,\n  type ControlRoomSnapshot,\n  type LogEntry,\n  type ExpandedSeat,\n// `@seatlayer/js/manager`, NOT the bare `@seatlayer/js` barrel. The barrel is the\n// buyer SDK and also exports the cockpit, so importing the cockpit through it\n// would pull SeatPicker, SeatingChart and the buyer engine into every bundle\n// that renders a control room. One bare import anywhere in this entry undoes\n// the split, and it looks like nothing at all in a diff.\n} from '@seatlayer/js/manager';\n\ntype Opt<K extends keyof SeatManagerOptions> = SeatManagerOptions[K];\n\n/** What the room passes when the operator opens one of your orders. */\nexport interface SeatManagerOpenOrder {\n  id: string;\n  displayRef: string;\n}\n\n/** What the room passes when the operator opens your trend view for a number. */\nexport interface SeatManagerOpenTrend {\n  kpi: string;\n  sectionId?: string;\n}\n\n/**\n * True when the host bound a handler to this output. Read once, when the board\n * is built: the room only offers \"Open order\" and the trend link to a host\n * that can follow them. `observed` is rxjs 7; `observers` covers rxjs 6, which\n * Angular 17 still accepts.\n */\nfunction hasHandler(emitter: object): boolean {\n  const subject = emitter as { observed?: boolean; observers?: unknown[] };\n  return subject.observed ?? (subject.observers?.length ?? 0) > 0;\n}\n\n/**\n * Angular wrapper around the organizer control room from `@seatlayer/js/manager`.\n *\n * Standalone, so it is imported directly rather than through an NgModule. Give\n * the element a size (it fills its box). The board is rebuilt only when\n * `eventKey` or `apiBase` changes. The inputs `@seatlayer/react` updates in\n * place reach the running board through its setters, so camera, selection,\n * live connection and DOM survive; every other input is read once when the\n * board is built.\n *\n * @example\n * ```html\n * <seatlayer-seat-manager\n *   #room\n *   eventKey=\"ev_9f3a\"\n *   [token]=\"session.token\"\n *   [tokenExpiresAt]=\"session.expiresAt\"\n *   [onTokenRefresh]=\"mintManageSession\"\n *   [(mode)]=\"mode\"\n *   (roomStateChange)=\"onRoomState($event)\"\n *   (openOrder)=\"openOrder($event)\"\n * />\n * <button (click)=\"room.showObjects(resaleSeats, 'Resale')\">Show resale</button>\n * ```\n */\n@Component({\n  selector: 'seatlayer-seat-manager',\n  standalone: true,\n  template: '<div #container class=\"seatlayer-container\"></div>',\n  styles: [':host { display: block; } .seatlayer-container { width: 100%; height: 100%; }'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SeatLayerSeatManagerComponent implements OnChanges {\n  /** Event to manage. Changing it rebuilds the board. */\n  @Input({ required: true }) eventKey!: string;\n  /** API base URL. Changing it rebuilds the board. */\n  @Input() apiBase?: string;\n  /** Short-lived, event-scoped `mse_` grant from your backend. Live. */\n  @Input({ required: true }) token!: EventScopedManageToken;\n  /** When `token` expires, epoch ms. Live. */\n  @Input() tokenExpiresAt?: number;\n  /**\n   * Mint a fresh grant before the current one expires. Live. A function input,\n   * like `buyerAccessTokenProvider` on the seating chart, because the room\n   * needs the new token back.\n   */\n  @Input() onTokenRefresh?: Opt<'onTokenRefresh'>;\n  /** The tool the board shows. Live; pairs with `modeChange` for `[(mode)]`. */\n  @Input() mode?: SeatManagerMode;\n  /** Which tools the board offers. Read once. */\n  @Input() tools?: SeatManagerMode[];\n  /** `minimal` shows just the map. Read once. */\n  @Input() chrome?: Opt<'chrome'>;\n  /** What the token may do. Live. */\n  @Input() capabilities?: Opt<'capabilities'>;\n  /** Fallback currency for money. Live. */\n  @Input() currency?: string;\n  /** Colour overrides. Live. */\n  @Input() theme?: Opt<'theme'>;\n  /** `light`, `dark` or `auto`. Applied before first paint, then live. */\n  @Input() themeMode?: Opt<'themeMode'>;\n  /** Keep the realtime link open while the tab is hidden. Live. */\n  @Input() keepLiveWhileHidden?: boolean;\n  /** Follow new bookings on the map. Live; pairs with `followLiveChange`. */\n  @Input() followLive?: boolean;\n  /** Seats selected once the board loads. Read once. */\n  @Input() selectedObjects?: string[];\n  /** Seats the operator may select. Live. */\n  @Input() selectableObjects?: string[];\n  /** Whether unavailable seats can be selected. Live. */\n  @Input() unavailableObjectsSelectable?: boolean;\n  /** Seats shown as unavailable. Live. */\n  @Input() unavailableObjects?: readonly string[];\n  /** The hover word for `unavailableObjects`. Live. */\n  @Input() unavailableObjectsReason?: string;\n  /** Prices the map's hover shows: a map overrides, null hides. Live. */\n  @Input() categoryPrices?: Record<string, SeatManagerCategoryPrice> | null;\n  /** Cap on the selection. Live. */\n  @Input() maxSelectedObjects?: number;\n  /** Exact count a valid selection needs. Live. */\n  @Input() numberOfPlacesToSelect?: number;\n  /** Per-seat selectability rule. Live. */\n  @Input() isObjectSelectable?: Opt<'isObjectSelectable'>;\n  /** False when your own header shows the numbers. Read once. */\n  @Input() kpis?: boolean;\n  /** The event's clock for every time the room shows. Read once. */\n  @Input() timeZone?: string;\n  /** Shown in \"Ask an admin of …\". Read once. */\n  @Input() organizationName?: string;\n  /** What you know about the sale. Live, compared by value. */\n  @Input() sale?: Opt<'sale'>;\n  /** Room your own overlays take over the map, in px. Live, compared by value. */\n  @Input() mapInsets?: Opt<'mapInsets'>;\n  /** What the map's colours mean when the room opens. Read once. */\n  @Input() colourBy?: Opt<'colourBy'>;\n  /**\n   * Open on this section. Read once. Bound as `[focusSection]`; the class\n   * field has another name because `focusSection()` is the handle method that\n   * frames a section later, as on React's handle.\n   */\n  @Input('focusSection') focusSectionOnOpen?: string;\n  /** Open on this seat. Read once. */\n  @Input() focusSeat?: string;\n  /** Open on these seats (an order's seats). Read once. */\n  @Input() focusSeats?: string[];\n  /** Open on this category. Read once. */\n  @Input() focusCategory?: string;\n  /** Where the operator came from, for the way back. Read once. */\n  @Input() arrivedFrom?: Opt<'arrivedFrom'>;\n\n  /** The board has loaded. */\n  @Output() readonly ready: EventEmitter<void> = new EventEmitter<void>();\n  /** Live numbers changed. */\n  @Output() readonly tallies: EventEmitter<SeatManagerTallies> = new EventEmitter<SeatManagerTallies>();\n  /** Something happened on the event. */\n  @Output() readonly activity: EventEmitter<SeatManagerActivity> = new EventEmitter<SeatManagerActivity>();\n  /** A fresh control room snapshot. */\n  @Output() readonly controlRoom: EventEmitter<ControlRoomSnapshot> = new EventEmitter<ControlRoomSnapshot>();\n  /** The operator switched tools. */\n  @Output() readonly modeChange: EventEmitter<SeatManagerMode> = new EventEmitter<SeatManagerMode>();\n  /** Follow-live was switched on or off. */\n  @Output() readonly followLiveChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n  /** The selection changed. */\n  @Output() readonly selectionChange: EventEmitter<ExpandedSeat[]> = new EventEmitter<ExpandedSeat[]>();\n  /** One seat was selected. */\n  @Output() readonly objectSelected: EventEmitter<ExpandedSeat> = new EventEmitter<ExpandedSeat>();\n  /** One seat was deselected. */\n  @Output() readonly objectDeselected: EventEmitter<ExpandedSeat> = new EventEmitter<ExpandedSeat>();\n  /** Exact-count state changed. */\n  @Output() readonly selectionValidityChange: EventEmitter<SeatManagerSelectionValidity> =\n    new EventEmitter<SeatManagerSelectionValidity>();\n  /** The selection became valid. */\n  @Output() readonly selectionValid: EventEmitter<SeatManagerSelectionValidity> =\n    new EventEmitter<SeatManagerSelectionValidity>();\n  /** The selection became invalid. */\n  @Output() readonly selectionInvalid: EventEmitter<SeatManagerSelectionValidity> =\n    new EventEmitter<SeatManagerSelectionValidity>();\n  /** The selection cap was reached. */\n  @Output() readonly selectionLimit: EventEmitter<number> = new EventEmitter<number>();\n  /** The filtered sections changed. */\n  @Output() readonly filteredSectionChange: EventEmitter<SeatManagerFilteredSection[]> =\n    new EventEmitter<SeatManagerFilteredSection[]>();\n  /** A general-admission area was clicked. */\n  @Output() readonly areaClick: EventEmitter<SeatManagerArea> = new EventEmitter<SeatManagerArea>();\n  /** A block, unblock or other action finished. */\n  @Output() readonly actionComplete: EventEmitter<SeatManagerActionResult> =\n    new EventEmitter<SeatManagerActionResult>();\n  /** The realtime link changed state. */\n  @Output() readonly connectionChange: EventEmitter<SeatManagerConnection> =\n    new EventEmitter<SeatManagerConnection>();\n  /** The room changed state: connecting, live, paused, offline or ended. */\n  @Output() readonly roomStateChange: EventEmitter<SeatManagerRoomState> =\n    new EventEmitter<SeatManagerRoomState>();\n  /** Something failed. */\n  @Output() readonly errored: EventEmitter<unknown> = new EventEmitter<unknown>();\n  /**\n   * The operator opened one of your orders. Only when this is bound does the\n   * room offer \"Open order\", so it never shows a dead link.\n   */\n  @Output() readonly openOrder: EventEmitter<SeatManagerOpenOrder> = new EventEmitter<SeatManagerOpenOrder>();\n  /** The operator opened your trend view for a number. Only offered when bound. */\n  @Output() readonly openTrend: EventEmitter<SeatManagerOpenTrend> = new EventEmitter<SeatManagerOpenTrend>();\n  /** Sections on a chart without any offers \"Open the designer\". Only offered when bound. */\n  @Output() readonly openDesigner: EventEmitter<void> = new EventEmitter<void>();\n\n  @ViewChild('container', { static: true })\n  private readonly container!: ElementRef<HTMLDivElement>;\n\n  private readonly zone = inject(NgZone);\n  private manager: CoreSeatManager | null = null;\n\n  constructor() {\n    inject(DestroyRef).onDestroy(() => this.destroy());\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    // Identity: a new event or API is a new board. The build reads every\n    // input's current value, so nothing else needs applying on this pass.\n    if (!this.manager || 'eventKey' in changes || 'apiBase' in changes) {\n      this.build();\n      return;\n    }\n    const manager = this.manager;\n    const changed = (name: string) => name in changes;\n\n    // Live inputs: the same set, the same setters and the same fallbacks as\n    // the React wrapper's effects. Outside the zone, like the board itself:\n    // a repaint must not schedule change detection for the whole app.\n    this.zone.runOutsideAngular(() => {\n      if (changed('token') || changed('tokenExpiresAt')) manager.setToken(this.token, this.tokenExpiresAt);\n      if (changed('capabilities')) manager.setCapabilities(this.capabilities);\n      if (changed('currency')) manager.setCurrency(this.currency);\n      if (changed('theme')) manager.setTheme(this.theme);\n      if (changed('sale') && saleChanged(changes['sale']!.previousValue, this.sale)) manager.setSale(this.sale);\n      if (changed('mapInsets') && insetsChanged(changes['mapInsets']!.previousValue, this.mapInsets)) {\n        manager.setMapInsets(this.mapInsets ?? null);\n      }\n      if (changed('themeMode')) manager.setThemeMode(this.themeMode);\n      if (changed('keepLiveWhileHidden')) manager.setKeepLiveWhileHidden(this.keepLiveWhileHidden);\n      if (changed('onTokenRefresh') && !!changes['onTokenRefresh']!.previousValue !== !!this.onTokenRefresh) {\n        manager.setTokenRefresh(this.tokenRefresh());\n      }\n      if (changed('mode') && this.mode) manager.setMode(this.mode);\n      if (changed('followLive') && this.followLive != null) manager.setFollowLive(this.followLive);\n      if (changed('selectableObjects')) manager.setSelectableObjects(this.selectableObjects ?? []);\n      if (changed('unavailableObjectsSelectable')) {\n        manager.setUnavailableObjectsSelectable(this.unavailableObjectsSelectable ?? true);\n      }\n      if (changed('unavailableObjects') || changed('unavailableObjectsReason')) {\n        manager.setUnavailableObjects(this.unavailableObjects ?? [], this.unavailableObjectsReason);\n      }\n      if (changed('categoryPrices')) manager.setCategoryPrices(this.categoryPrices);\n      if (changed('maxSelectedObjects')) manager.setMaxSelectedObjects(this.maxSelectedObjects);\n      if (changed('numberOfPlacesToSelect')) manager.setNumberOfPlacesToSelect(this.numberOfPlacesToSelect);\n      if (changed('isObjectSelectable')) manager.setObjectSelectable(this.isObjectSelectable);\n    });\n  }\n\n  // ---------- imperative API, for a template ref ----------\n  // The same methods as SeatManagerHandle in @seatlayer/react.\n\n  setMode(mode: SeatManagerMode): void { this.manager?.setMode(mode); }\n  setToken(token: EventScopedManageToken, expiresAt?: number): void { this.manager?.setToken(token, expiresAt); }\n  setHeatOverlay(enabled: boolean): void { this.manager?.setHeatOverlay(enabled); }\n  setFollowLive(enabled: boolean): void { this.manager?.setFollowLive(enabled); }\n  setTrendWindow(windowMinutes: number): Promise<ControlRoomSnapshot> {\n    return this.manager?.setTrendWindow(windowMinutes) ?? Promise.reject(new Error('not ready'));\n  }\n  enterFullscreen(): Promise<void> { return this.manager?.enterFullscreen() ?? Promise.resolve(); }\n  exitFullscreen(): Promise<void> { return this.manager?.exitFullscreen() ?? Promise.resolve(); }\n  isFullscreen(): boolean { return this.manager?.isFullscreen() ?? false; }\n  block(labels?: string[], opts?: { releaseAt?: number; reason?: string }): Promise<void> {\n    return this.manager?.block(labels, opts) ?? Promise.resolve();\n  }\n  unblock(labels?: string[]): Promise<void> { return this.manager?.unblock(labels) ?? Promise.resolve(); }\n  unblockAll(): Promise<void> { return this.manager?.unblockAll() ?? Promise.resolve(); }\n  cancelBooking(labels: string[], bookingRef: string): Promise<void> {\n    return this.manager?.cancelBooking(labels, bookingRef) ?? Promise.resolve();\n  }\n  setCategory(categoryKey: string, labels?: string[]): Promise<void> {\n    return this.manager?.setCategory(categoryKey, labels) ?? Promise.resolve();\n  }\n  setTableBooking(\n    tableIds: string[],\n    mode: EventTableBookingMode,\n    bounds?: { minOccupancy?: number; maxOccupancy?: number },\n  ): Promise<void> {\n    return this.manager?.setTableBooking(tableIds, mode, bounds) ?? Promise.resolve();\n  }\n  selectAll(): ExpandedSeat[] { return this.manager?.selectAll() ?? []; }\n  selectSection(sectionId: string): ExpandedSeat[] { return this.manager?.selectSection(sectionId) ?? []; }\n  selectByLabels(labels: string[]): ExpandedSeat[] { return this.manager?.selectByLabels(labels) ?? []; }\n  selectObjects(labels: string[]): ExpandedSeat[] { return this.manager?.selectObjects(labels) ?? []; }\n  deselectObjects(labels: string[]): ExpandedSeat[] { return this.manager?.deselectObjects(labels) ?? []; }\n  selectCategories(keys: string[]): ExpandedSeat[] { return this.manager?.selectCategories(keys) ?? []; }\n  deselectCategories(keys: string[]): ExpandedSeat[] { return this.manager?.deselectCategories(keys) ?? []; }\n  setSelectableObjects(labels: string[]): void { this.manager?.setSelectableObjects(labels); }\n  setUnavailableObjectsSelectable(enabled: boolean): void { this.manager?.setUnavailableObjectsSelectable(enabled); }\n  /** Replace the labels shown as unavailable (and their hover word) without remounting. */\n  setUnavailableObjects(labels: readonly string[], reason?: string): void {\n    this.manager?.setUnavailableObjects(labels, reason);\n  }\n  /** Replace the prices the map's hover shows: a map overrides, null hides, undefined uses the chart's. */\n  setCategoryPrices(prices: Record<string, SeatManagerCategoryPrice> | null | undefined): void {\n    this.manager?.setCategoryPrices(prices);\n  }\n  setObjectSelectable(predicate: Opt<'isObjectSelectable'>): void { this.manager?.setObjectSelectable(predicate); }\n  setMaxSelectedObjects(max: number | undefined): void { this.manager?.setMaxSelectedObjects(max); }\n  setNumberOfPlacesToSelect(required: number | undefined): void {\n    this.manager?.setNumberOfPlacesToSelect(required);\n  }\n  getSelectionValidity(): SeatManagerSelectionValidity | null { return this.manager?.getSelectionValidity() ?? null; }\n  setFilteredSection(label: string): SeatManagerFilteredSection[] { return this.manager?.setFilteredSection(label) ?? []; }\n  clearFilteredSection(): void { this.manager?.clearFilteredSection(); }\n  /** Frame matching sections in any mode, without filtering or touching the selection. */\n  focusSection(label: string): SeatManagerFilteredSection[] { return this.manager?.focusSection(label) ?? []; }\n  getFilteredSections(): SeatManagerFilteredSection[] { return this.manager?.getFilteredSections() ?? []; }\n  clearSelection(): void { this.manager?.clearSelection(); }\n  getSelection(): ExpandedSeat[] { return this.manager?.getSelection() ?? []; }\n  getReport(): Promise<ReportResult> { return this.manager?.getReport() ?? Promise.reject(new Error('not ready')); }\n  getControlRoomSnapshot(windowMinutes?: number): Promise<ControlRoomSnapshot> {\n    return this.manager?.getControlRoomSnapshot(windowMinutes) ?? Promise.reject(new Error('not ready'));\n  }\n  getLog(opts?: { limit?: number; before?: number }): Promise<{ entries: LogEntry[]; nextBefore: number | null }> {\n    return this.manager?.getLog(opts) ?? Promise.resolve({ entries: [], nextBefore: null });\n  }\n  setHoldTtl(ms: number | null): Promise<void> { return this.manager?.setHoldTtl(ms) ?? Promise.resolve(); }\n  /**\n   * Realtime link state plus the \"as of\" behind the numbers on screen. Null\n   * only before the board exists. `connectionChange` gives the edges; this\n   * gives the answer on demand.\n   */\n  getConnection(): SeatManagerConnection | null { return this.manager?.getConnection() ?? null; }\n  zoomToFit(): void { this.manager?.zoomToFit(); }\n  /** Light these seats and frame them, named in the legend; null clears. */\n  showObjects(labels: readonly string[] | null, name?: string): void { this.manager?.showObjects(labels, name); }\n\n  // ---------- internals ----------\n\n  /** Reads the current input on every call, so a swapped handler needs no setter. */\n  private tokenRefresh(): Opt<'onTokenRefresh'> {\n    return this.onTokenRefresh\n      ? () => this.zone.run(() => this.onTokenRefresh!())\n      : undefined;\n  }\n\n  private build(): void {\n    const element = this.container?.nativeElement;\n    if (!element) return;\n\n    this.destroy();\n\n    // The board runs a render loop, timers and a socket. Left inside the\n    // Angular zone, each of them would schedule change detection for the\n    // whole app — so it is built outside, and each callback re-enters the zone\n    // only to emit.\n    this.zone.runOutsideAngular(() => {\n      const emit = <T>(emitter: EventEmitter<T>, value: T) => this.zone.run(() => emitter.emit(value));\n      const back = this.arrivedFrom?.back;\n\n      const instance = new CoreSeatManager({\n        container: element,\n        apiBase: this.apiBase,\n        eventKey: this.eventKey,\n        token: this.token,\n        tokenExpiresAt: this.tokenExpiresAt,\n        mode: this.mode,\n        currency: this.currency,\n        keepLiveWhileHidden: this.keepLiveWhileHidden,\n        followLive: this.followLive,\n        capabilities: this.capabilities,\n        selectedObjects: this.selectedObjects,\n        selectableObjects: this.selectableObjects,\n        unavailableObjectsSelectable: this.unavailableObjectsSelectable,\n        unavailableObjects: this.unavailableObjects,\n        unavailableObjectsReason: this.unavailableObjectsReason,\n        categoryPrices: this.categoryPrices,\n        maxSelectedObjects: this.maxSelectedObjects,\n        numberOfPlacesToSelect: this.numberOfPlacesToSelect,\n        isObjectSelectable: this.isObjectSelectable,\n        tools: this.tools,\n        chrome: this.chrome,\n        kpis: this.kpis,\n        timeZone: this.timeZone,\n        organizationName: this.organizationName,\n        sale: this.sale,\n        mapInsets: this.mapInsets,\n        theme: this.theme,\n        // Applied before first paint, so a board asked for light never\n        // flashes dark on the way in.\n        themeMode: this.themeMode,\n        colourBy: this.colourBy,\n        focusSection: this.focusSectionOnOpen,\n        focusSeat: this.focusSeat,\n        focusSeats: this.focusSeats,\n        focusCategory: this.focusCategory,\n        // The way back runs host code (usually the router), so it re-enters the zone.\n        arrivedFrom: this.arrivedFrom && back\n          ? { ...this.arrivedFrom, back: { ...back, go: () => this.zone.run(() => back.go()) } }\n          : this.arrivedFrom,\n        // Only a host that bound the output gets the link. Left unset\n        // otherwise, so the room never offers a dead one.\n        onOpenOrder: hasHandler(this.openOrder) ? (order) => emit(this.openOrder, order) : undefined,\n        onOpenTrend: hasHandler(this.openTrend) ? (focus) => emit(this.openTrend, focus) : undefined,\n        onOpenDesigner: hasHandler(this.openDesigner) ? () => emit(this.openDesigner, undefined) : undefined,\n        onTokenRefresh: this.tokenRefresh(),\n        onReady: () => this.zone.run(() => this.ready.emit()),\n        onTallies: (tallies) => emit(this.tallies, tallies),\n        onActivity: (activity) => emit(this.activity, activity),\n        onControlRoom: (snapshot) => emit(this.controlRoom, snapshot),\n        onModeChange: (nextMode) => emit(this.modeChange, nextMode),\n        onFollowLiveChange: (enabled) => emit(this.followLiveChange, enabled),\n        onSelectionChange: (seats) => emit(this.selectionChange, seats),\n        onObjectSelected: (object) => emit(this.objectSelected, object),\n        onObjectDeselected: (object) => emit(this.objectDeselected, object),\n        onSelectionValidityChange: (state) => emit(this.selectionValidityChange, state),\n        onSelectionValid: (state) => emit(this.selectionValid, state),\n        onSelectionInvalid: (state) => emit(this.selectionInvalid, state),\n        onSelectionLimit: (max) => emit(this.selectionLimit, max),\n        onFilteredSectionChange: (sections) => emit(this.filteredSectionChange, sections),\n        onAreaClick: (area) => emit(this.areaClick, area),\n        onActionComplete: (result) => emit(this.actionComplete, result),\n        onConnectionChange: (state) => emit(this.connectionChange, state),\n        onRoomStateChange: (state) => emit(this.roomStateChange, state),\n        onError: (error) => emit(this.errored, error),\n      });\n\n      this.manager = instance;\n      void instance.render();\n    });\n  }\n\n  private destroy(): void {\n    this.manager?.destroy();\n    this.manager = null;\n  }\n}\n\n/** By value, as React compares it: a rebuilt object with the same facts is no change. */\nfunction saleChanged(previous: Opt<'sale'>, next: Opt<'sale'>): boolean {\n  return previous?.status !== next?.status || previous?.tone !== next?.tone\n    || previous?.openedAt !== next?.openedAt || previous?.pageUrl !== next?.pageUrl;\n}\n\nfunction insetsChanged(previous: Opt<'mapInsets'>, next: Opt<'mapInsets'>): boolean {\n  return previous?.top !== next?.top || previous?.right !== next?.right\n    || previous?.bottom !== next?.bottom || previous?.left !== next?.left;\n}\n","/**\n * `@seatlayer/angular/manager` — the organizer control room, and nothing else.\n *\n * An ng-packagr secondary entry point, for the same reason as\n * `@seatlayer/js/manager` and `@seatlayer/react/manager`: a buyer app that\n * imports `@seatlayer/angular` must never carry the control room, and a control\n * room must never carry the buyer picker. The package root does not export\n * `SeatLayerSeatManagerComponent` at all.\n *\n * The one rule that makes this work: this entry imports from\n * `@seatlayer/js/manager`, never from `@seatlayer/js`. One bare import brings\n * the whole buyer SDK back in, and it looks like nothing at all in a diff.\n */\nexport { SeatLayerSeatManagerComponent } from './seat-manager.component';\nexport type { SeatManagerOpenOrder, SeatManagerOpenTrend } from './seat-manager.component';\nexport type {\n  SeatManagerOptions,\n  SeatManagerMode,\n  EventScopedManageToken,\n  SeatManagerTallies,\n  SeatManagerSale,\n  SeatManagerActivity,\n  SeatManagerActionResult,\n  SeatManagerConnection,\n  SeatManagerRoomState,\n  SeatManagerFilteredSection,\n  SeatManagerSelectionValidity,\n  SeatManagerCategoryPrice,\n  EventTableBookingMode,\n  ControlRoomActivityEntry,\n  ControlRoomSectionMetric,\n  ControlRoomSnapshot,\n} from '@seatlayer/js/manager';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["CoreSeatManager"],"mappings":"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"}