{"version":3,"file":"seatlayer-angular.mjs","sources":["../../src/seating-chart.component.ts","../../src/season-picker.component.ts","../../src/index.ts","../../src/seatlayer-angular.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  SeatingChart as CoreSeatingChart,\n  SEATING_CHART_IDENTITY_PROPS,\n  bindSeatingChartHandle,\n  buildSeatingChartOptions,\n  type RendererViewMode,\n  type SeatingChartHandle,\n  type SeatingChartOptions,\n  type SelectedSeat,\n  type HoldResult,\n  type BestAvailableResult,\n  type GAAreaAvailability,\n  type SeatHoverDetails,\n  type PickerSelectionValidity,\n  type PickerSelectionValidator,\n  type BuyerAccessToken,\n  type BuyerAccessTokenProvider,\n  type BuyerAccessExpiredEvent,\n  type BuyerAccessUnavailableEvent,\n  type SelectedObjectUnavailableEvent,\n} from '@seatlayer/js';\n\n/**\n * Angular wrapper around the framework-agnostic `@seatlayer/js` SDK.\n *\n * Standalone, so it is imported directly rather than through an NgModule.\n *\n * The canvas is created once and torn down on destroy. Only the inputs that\n * change the chart's identity (`SEATING_CHART_IDENTITY_PROPS`: `event`,\n * `apiBase`, `maxSelection`, `numberOfPlacesToSelect`, `publicKey`, `locale`, `currency`,\n * `colorblindSafe`, `initialView`, `errorDisplay`) trigger a rebuild, so an\n * unrelated change-detection pass never destroys the canvas mid-selection.\n *\n * @example\n * ```html\n * <seatlayer-seating-chart\n *   #chart\n *   event=\"summer-gala\"\n *   (selectionChange)=\"onSelectionChange($event)\"\n *   (hold)=\"onHold($event)\"\n * />\n * <button (click)=\"chart.hold()\">Continue</button>\n * ```\n */\n@Component({\n  selector: 'seatlayer-seating-chart',\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 SeatLayerSeatingChartComponent implements OnChanges {\n  /** Event key to render. Changing it rebuilds the chart. */\n  @Input({ required: true }) event!: string;\n\n  /** API base URL. Defaults to the public API. */\n  @Input() apiBase?: string;\n\n  /** Cap on how many seats a buyer may select. */\n  @Input() maxSelection?: number;\n\n  /** Object ids or public labels selected after availability loads. */\n  @Input() selectedObjects?: string[];\n\n  /** Object ids or public labels the buyer may select. */\n  @Input() selectableObjects?: string[] | null;\n\n  /** Exact ticket count required for a valid selection. */\n  @Input() numberOfPlacesToSelect?: number;\n\n  /** Local buyer selection guards. Changing them rebuilds the chart. */\n  @Input() selectionValidators?: PickerSelectionValidator[];\n\n  /** Publishable key, when your integration uses one. */\n  @Input() publicKey?: string;\n\n  /** BCP-47 locale for built-in copy. */\n  @Input() locale?: string;\n\n  /** ISO currency for price formatting. */\n  @Input() currency?: string;\n\n  /** Render with colorblind-safe seat glyphs. */\n  @Input() colorblindSafe?: boolean;\n\n  /**\n   * Initial canvas projection. Read once when the chart is built, so changing\n   * it rebuilds.\n   * @deprecated `'isometric'` and `'perspective'` are retired in favour of the\n   * real 3D venue view; use `'flat'`.\n   */\n  @Input() initialView?: RendererViewMode;\n\n  /**\n   * What the BUYER sees when the chart cannot load: `'message'` (default) is a\n   * styleable notice with a Try again button, `'none'` is silent for hosts that\n   * render their own failure UI from `errored`.\n   */\n  @Input() errorDisplay?: 'message' | 'none';\n\n  /** Show the built-in seat tooltip. Set false to draw your own from `seatHover`. */\n  @Input() seatTooltip?: boolean;\n\n  /** Copy overrides, read once per rebuild. */\n  @Input() messages?: SeatingChartOptions['messages'];\n\n  /**\n   * Sales Channels: mint a buyer access session on demand. Called with a\n   * `reason`; returns `{ token, expiresAt }` from YOUR backend. The token is\n   * held in memory only — never storage, never a URL, never a log.\n   */\n  @Input() buyerAccessTokenProvider?: BuyerAccessTokenProvider;\n\n  /** One-shot session for hosts that own the lifecycle. Cannot be renewed. */\n  @Input() buyerAccessToken?: string | BuyerAccessToken;\n\n  /** The buyer's selection changed. */\n  @Output() readonly selectionChange: EventEmitter<SelectedSeat[]> = new EventEmitter<SelectedSeat[]>();\n\n  /** Exact-count state changed. */\n  @Output() readonly selectionValidityChange: EventEmitter<PickerSelectionValidity> =\n    new EventEmitter<PickerSelectionValidity>();\n\n  /** The exact count was reached. */\n  @Output() readonly selectionValid: EventEmitter<SelectedSeat[]> = new EventEmitter<SelectedSeat[]>();\n\n  /** The selection is not at the exact count. */\n  @Output() readonly selectionInvalid: EventEmitter<PickerSelectionValidity> =\n    new EventEmitter<PickerSelectionValidity>();\n\n  /** The active selection cap was reached. */\n  @Output() readonly selectionLimit: EventEmitter<number> = new EventEmitter<number>();\n\n  /** A hold succeeded. */\n  @Output() readonly hold: EventEmitter<HoldResult> = new EventEmitter<HoldResult>();\n\n  /** A previous hold was restored on mount. */\n  @Output() readonly holdRestored: EventEmitter<HoldResult> = new EventEmitter<HoldResult>();\n\n  /** The active hold lapsed. */\n  @Output() readonly holdExpired: EventEmitter<void> = new EventEmitter<void>();\n\n  /** A GA area was clicked. */\n  @Output() readonly gaClick: EventEmitter<GAAreaAvailability> = new EventEmitter<GAAreaAvailability>();\n\n  /** Something failed — a network error, a rejected hold. */\n  @Output() readonly errored: EventEmitter<unknown> = new EventEmitter<unknown>();\n\n  /** A floor deck was tapped in the 3D view. */\n  @Output() readonly deckTap: EventEmitter<string> = new EventEmitter<string>();\n\n  /** A transient hint worth showing the buyer, or `null` to clear it. */\n  @Output() readonly hint: EventEmitter<string | null> = new EventEmitter<string | null>();\n\n  /** The pointer moved onto a seat, or off one (`null`). */\n  @Output() readonly seatHover: EventEmitter<SeatHoverDetails | null> = new EventEmitter<SeatHoverDetails | null>();\n\n  /** The buyer access session lapsed; `refreshed` says whether it recovered. */\n  @Output() readonly accessExpired: EventEmitter<BuyerAccessExpiredEvent> =\n    new EventEmitter<BuyerAccessExpiredEvent>();\n\n  /** Private inventory is unavailable and refreshing will not fix it. */\n  @Output() readonly accessUnavailable: EventEmitter<BuyerAccessUnavailableEvent> =\n    new EventEmitter<BuyerAccessUnavailableEvent>();\n\n  /** Selected-but-unheld units stopped being selectable. */\n  @Output() readonly selectedObjectUnavailable: EventEmitter<SelectedObjectUnavailableEvent> =\n    new EventEmitter<SelectedObjectUnavailableEvent>();\n\n  @ViewChild('container', { static: true })\n  private readonly container!: ElementRef<HTMLDivElement>;\n\n  private readonly zone = inject(NgZone);\n  private chart: CoreSeatingChart | null = null;\n\n  /**\n   * Inputs that require tearing the canvas down and rebuilding it. The shared\n   * list from `@seatlayer/js`, not a hand-copied one — this is exactly the place\n   * Angular fell two inputs behind React.\n   */\n  private static readonly REBUILD_INPUTS = SEATING_CHART_IDENTITY_PROPS;\n\n  /**\n   * The canonical forwarding object. Every imperative method below is a\n   * one-line delegate to it, so the component cannot forward a method the other\n   * wrappers do not, or miss one they do.\n   */\n  private readonly handle: SeatingChartHandle = bindSeatingChartHandle(() => this.chart);\n\n  constructor() {\n    inject(DestroyRef).onDestroy(() => this.destroy());\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const needsRebuild = SeatLayerSeatingChartComponent.REBUILD_INPUTS.some((name) => name in changes);\n    if (needsRebuild) {\n      this.build();\n    }\n  }\n\n  // ---------- imperative API, for a template ref ----------\n\n  /** Hold the current selection. Resolves the hold, or `null` on a 409 conflict. */\n  holdSelection(options?: { ttlMs?: number }): Promise<HoldResult | null> {\n    return this.handle.hold(options);\n  }\n\n  /** Restore an active hold by its opaque id. */\n  resumeHold(holdId: string): Promise<HoldResult | null> {\n    return this.handle.resumeHold(holdId);\n  }\n\n  /** Current active hold known to the chart. */\n  getCurrentHold(): HoldResult | null {\n    return this.handle.getCurrentHold();\n  }\n\n  /** GA areas with live remaining capacity. */\n  getGAAreas(): GAAreaAvailability[] {\n    return this.handle.getGAAreas();\n  }\n\n  /** Atomically hold a quantity from one GA area. */\n  holdGA(\n    areaId: string,\n    qty: number,\n    options?: { tierId?: string | null; ttlMs?: number },\n  ): Promise<HoldResult | null> {\n    return this.handle.holdGA(areaId, qty, options);\n  }\n\n  /** Ask the server for the `qty` best free seats and hold them atomically. */\n  bestAvailable(qty: number, categoryKey?: string): Promise<BestAvailableResult | null> {\n    return this.handle.bestAvailable(qty, categoryKey);\n  }\n\n  /** Release the current hold (if any). */\n  release(): Promise<void> {\n    return this.handle.release();\n  }\n\n  /** Release some held labels while keeping the remainder active. */\n  releaseLabels(labels: string[]): Promise<boolean> {\n    return this.handle.releaseLabels(labels);\n  }\n\n  /** The current selection, with prices resolved from the chart categories. */\n  getSelection(): SelectedSeat[] {\n    return this.handle.getSelection();\n  }\n\n  selectObjects(objects: string[]): SelectedSeat[] {\n    return this.handle.selectObjects(objects);\n  }\n\n  deselectObjects(objects: string[]): void {\n    this.handle.deselectObjects(objects);\n  }\n\n  clearSelection(): void {\n    this.handle.clearSelection();\n  }\n\n  selectCategories(categoryKeys: string[]): SelectedSeat[] {\n    return this.handle.selectCategories(categoryKeys);\n  }\n\n  deselectCategories(categoryKeys: string[]): void {\n    this.handle.deselectCategories(categoryKeys);\n  }\n\n  setSelectableObjects(objects: string[] | null): void {\n    this.handle.setSelectableObjects(objects);\n  }\n\n  setMaxSelection(maxSelection: number): void {\n    this.handle.setMaxSelection(maxSelection);\n  }\n\n  getSelectionValidity(): PickerSelectionValidity | null {\n    return this.handle.getSelectionValidity();\n  }\n\n  /** Choose a ticket tier for a selected seat; `null` reverts to the default. */\n  setSeatTier(seatId: string, tierId: string | null): void {\n    this.handle.setSeatTier(seatId, tierId);\n  }\n\n  /** Floors of a multi-floor chart. Empty before the first render. */\n  getFloors(): { id: string; name: string }[] {\n    return this.handle.getFloors();\n  }\n\n  /** Switch the shown floor (2D). No-ops on single-floor charts. */\n  setFloor(floorId: string): void {\n    this.handle.setFloor(floorId);\n  }\n\n  /** Toggle colorblind-safe rendering at runtime. */\n  setColorblindSafe(on: boolean): void {\n    this.handle.setColorblindSafe(on);\n  }\n\n  /** Zoom in one step (same increment as the wheel/pinch gesture). */\n  zoomIn(): void {\n    this.handle.zoomIn();\n  }\n\n  /** Zoom out one step. */\n  zoomOut(): void {\n    this.handle.zoomOut();\n  }\n\n  /** Reset the camera so the whole chart fits the container. */\n  zoomToFit(): void {\n    this.handle.zoomToFit();\n  }\n\n  /**\n   * Re-acquire the buyer access session after your app re-authorizes the buyer\n   * (Sales Channels). Resolves false when the chart is not access-scoped.\n   */\n  refreshAccess(): Promise<boolean> {\n    return this.handle.refreshAccess();\n  }\n\n  // ---------- internals ----------\n\n  private build(): void {\n    const element = this.container?.nativeElement;\n    if (!element) return;\n\n    this.destroy();\n\n    // The chart runs a rAF render loop and pointer handlers. Left inside the\n    // Angular zone, every frame would schedule change detection for the whole\n    // application — so it is built outside, and each callback re-enters the zone\n    // only to emit, which is the only part Angular needs to see.\n    this.zone.runOutsideAngular(() => {\n      const emit = <T>(emitter: EventEmitter<T>, value: T) =>\n        this.zone.run(() => emitter.emit(value));\n\n      const instance = new CoreSeatingChart(buildSeatingChartOptions(\n        element,\n        {\n          event: this.event,\n          apiBase: this.apiBase,\n          maxSelection: this.maxSelection,\n          selectedObjects: this.selectedObjects,\n          selectableObjects: this.selectableObjects,\n          numberOfPlacesToSelect: this.numberOfPlacesToSelect,\n          selectionValidators: this.selectionValidators,\n          publicKey: this.publicKey,\n          locale: this.locale,\n          currency: this.currency,\n          colorblindSafe: this.colorblindSafe,\n          initialView: this.initialView,\n          errorDisplay: this.errorDisplay,\n          messages: this.messages,\n          seatTooltip: this.seatTooltip,\n          buyerAccessTokenProvider: this.buyerAccessTokenProvider,\n          buyerAccessToken: this.buyerAccessToken,\n        },\n        {\n          onSelectionChange: (seats) => emit(this.selectionChange, seats),\n          onSelectionValidityChange: (state) => emit(this.selectionValidityChange, state),\n          onSelectionValid: (seats) => emit(this.selectionValid, seats),\n          onSelectionInvalid: (state) => emit(this.selectionInvalid, state),\n          onSelectionLimit: (max) => emit(this.selectionLimit, max),\n          onHold: (result) => emit(this.hold, result),\n          onHoldRestored: (result) => emit(this.holdRestored, result),\n          onHoldExpired: () => this.zone.run(() => this.holdExpired.emit()),\n          onGAClick: (area) => emit(this.gaClick, area),\n          onError: (error) => emit(this.errored, error),\n          onDeckTap: (floorId) => emit(this.deckTap, floorId),\n          onHint: (message) => emit(this.hint, message),\n          onSeatHover: (details) => emit(this.seatHover, details),\n          onAccessExpired: (state) => emit(this.accessExpired, state),\n          onAccessUnavailable: (state) => emit(this.accessUnavailable, state),\n          onSelectedObjectUnavailable: (state) => emit(this.selectedObjectUnavailable, state),\n        },\n      ));\n\n      this.chart = instance;\n      void instance.render();\n    });\n  }\n\n  private destroy(): void {\n    this.chart?.destroy();\n    this.chart = null;\n  }\n}\n","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  SeasonPicker as CoreSeasonPicker,\n  type SeasonAvailability,\n  type SeasonCheckoutHandoff,\n  type SeasonDescriptor,\n  type SeasonPickerOptions,\n  type SeasonRenewalIntent,\n  type SeasonStatusEvent,\n} from '@seatlayer/js';\n\n/** Standalone Angular adapter for the distinct fixed-inclusion Season buyer flow. */\n@Component({\n  selector: 'seatlayer-season-picker',\n  standalone: true,\n  template: '<div #container class=\"seatlayer-season-container\"></div>',\n  styles: [':host { display: block; } .seatlayer-season-container { width: 100%; }'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SeatLayerSeasonPickerComponent implements OnChanges {\n  /** Season key to render. */\n  @Input({ required: true }) season!: string;\n\n  /** Public API base override. */\n  @Input() apiBase?: string;\n\n  /** Publishable account key, accepted for snippet parity. Never sent. */\n  @Input() publicKey?: string;\n\n  /** Who takes the money once the package is held. Default `'handoff'`. */\n  @Input() checkout?: SeasonPickerOptions['checkout'];\n\n  /** Where a redirecting gateway returns the buyer, for hosted checkout. */\n  @Input() returnUrl?: string;\n\n  /** Refreshable one-time browser bearer provider. */\n  @Input() buyerAccessTokenProvider?: SeasonPickerOptions['buyerAccessTokenProvider'];\n\n  /** One-time Season browser bearer. */\n  @Input() buyerAccessToken?: SeasonPickerOptions['buyerAccessToken'];\n\n  /** Operation restored after an uncertain create response. */\n  @Input() initialOperationId?: string;\n\n  /** Maximum recovery polling time. */\n  @Input() recoveryTimeoutMs?: number;\n\n  /** Test or host fetch implementation. */\n  @Input() fetch?: typeof fetch;\n\n  /** A same-seat hold reached a safe handoff. */\n  @Output() readonly hold = new EventEmitter<SeasonCheckoutHandoff>();\n\n  /** The active handoff changed or was released. */\n  @Output() readonly holdChange = new EventEmitter<SeasonCheckoutHandoff | null>();\n\n  /** The buyer continued with an opaque handoff. */\n  @Output() readonly continued = new EventEmitter<SeasonCheckoutHandoff>();\n\n  /** A returning holder recorded browser intent only. */\n  @Output() readonly renewalIntent = new EventEmitter<SeasonRenewalIntent>();\n\n  /** Buyer access expired. */\n  @Output() readonly accessExpired = new EventEmitter<unknown>();\n\n  /** Buyer access cannot be recovered. */\n  @Output() readonly accessUnavailable = new EventEmitter<unknown>();\n\n  /** Hosted checkout only: the gateway webhook landed and the order is paid. */\n  @Output() readonly orderConfirmed = new EventEmitter<unknown>();\n\n  /** Buyer-visible operation status changed. */\n  @Output() readonly statusChange = new EventEmitter<SeasonStatusEvent>();\n\n  /** The Season buyer flow failed. */\n  @Output() readonly errored = new EventEmitter<unknown>();\n\n  @ViewChild('container', { static: true })\n  private readonly container!: ElementRef<HTMLDivElement>;\n\n  private static readonly REBUILD_INPUTS = new Set([\n    'season', 'apiBase', 'publicKey', 'checkout', 'returnUrl',\n    'buyerAccessTokenProvider', 'buyerAccessToken',\n    'initialOperationId', 'recoveryTimeoutMs', 'fetch',\n  ]);\n  private readonly zone = inject(NgZone);\n  private picker: CoreSeasonPicker | null = null;\n\n  constructor() {\n    inject(DestroyRef).onDestroy(() => this.destroy());\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (Object.keys(changes).some((name) => SeatLayerSeasonPickerComponent.REBUILD_INPUTS.has(name))) {\n      this.build();\n    }\n  }\n\n  /** Holds the same labels across every included occurrence. */\n  holdSameSeat(labels: readonly string[], operationId: string): Promise<SeasonCheckoutHandoff> {\n    return this.current().holdSameSeat(labels, operationId);\n  }\n\n  /** Restores a caller-stable Season operation after uncertainty. */\n  restoreOperation(operationId: string): Promise<SeasonCheckoutHandoff | null> {\n    return this.current().restoreOperation(operationId);\n  }\n\n  /** Releases the active selection with a caller-stable action id. */\n  release(releaseActionId: string): Promise<void> {\n    return this.current().release(releaseActionId);\n  }\n\n  /** Records renewal intent; trusted server code still inspects and commits it. */\n  createRenewalIntent(offerId: string): Promise<SeasonRenewalIntent> {\n    return this.current().createRenewalIntent(offerId);\n  }\n\n  /** Current immutable Season descriptor. */\n  getDescriptor(): SeasonDescriptor | null {\n    return this.picker?.getDescriptor() ?? null;\n  }\n\n  /** Current same-seat aggregate availability. */\n  getAvailability(): SeasonAvailability | null {\n    return this.picker?.getAvailability() ?? null;\n  }\n\n  /** Current opaque checkout handoff. */\n  getHandoff(): SeasonCheckoutHandoff | null {\n    return this.picker?.getHandoff() ?? null;\n  }\n\n  private build(): void {\n    this.destroy();\n    this.zone.runOutsideAngular(() => {\n      const picker = new CoreSeasonPicker({\n        container: this.container.nativeElement,\n        season: this.season,\n        apiBase: this.apiBase,\n        publicKey: this.publicKey,\n        checkout: this.checkout,\n        returnUrl: this.returnUrl,\n        buyerAccessTokenProvider: this.buyerAccessTokenProvider,\n        buyerAccessToken: this.buyerAccessToken,\n        initialOperationId: this.initialOperationId,\n        recoveryTimeoutMs: this.recoveryTimeoutMs,\n        fetch: this.fetch,\n        onHold: (value) => this.zone.run(() => this.hold.emit(value)),\n        onHoldChange: (value) => this.zone.run(() => this.holdChange.emit(value)),\n        onContinue: (value) => this.zone.run(() => this.continued.emit(value)),\n        onRenewalIntent: (value) => this.zone.run(() => this.renewalIntent.emit(value)),\n        onAccessExpired: (value) => this.zone.run(() => this.accessExpired.emit(value)),\n        onAccessUnavailable: (value) => this.zone.run(() => this.accessUnavailable.emit(value)),\n        onOrderConfirmed: (value) => this.zone.run(() => this.orderConfirmed.emit(value)),\n        onStatusChange: (value) => this.zone.run(() => this.statusChange.emit(value)),\n        onError: (value) => this.zone.run(() => this.errored.emit(value)),\n      });\n      this.picker = picker;\n      void picker.render().catch(() => undefined);\n    });\n  }\n\n  private current(): CoreSeasonPicker {\n    if (!this.picker) throw new Error('seatlayer: Angular SeasonPicker is not mounted');\n    return this.picker;\n  }\n\n  private destroy(): void {\n    this.picker?.destroy();\n    this.picker = null;\n  }\n}\n","/**\n * @seatlayer/angular — the Angular wrapper for the SeatLayer embed SDK.\n *\n * The component is standalone; import it directly rather than through an\n * NgModule.\n */\nexport { SeatLayerSeatingChartComponent } from './seating-chart.component';\nexport { SeatLayerSeasonPickerComponent } from './season-picker.component';\n\nexport type {\n  SelectedSeat,\n  HoldResult,\n  BestAvailableResult,\n  GAAreaAvailability,\n  HoldLineItem,\n  SeatHoverDetails,\n  SeasonAvailability,\n  SeasonCheckoutHandoff,\n  SeasonDescriptor,\n  SeasonOperation,\n  SeasonOperationState,\n  SeasonPickerOptions,\n  SeasonRenewalIntent,\n  SeasonStatusEvent,\n} from '@seatlayer/js';\n\n// Sales Channels — buyer access sessions for private channel inventory.\nexport type {\n  BuyerAccessToken,\n  BuyerAccessTokenProvider,\n  BuyerAccessRefreshReason,\n  BuyerAccessUnavailableReason,\n  BuyerAccessExpiredEvent,\n  BuyerAccessUnavailableEvent,\n  SelectedObjectUnavailableEvent,\n} from '@seatlayer/js';\n\n// The framework-agnostic widget class — for the one-call modal (SeatPickerWidget.open()).\nexport { SeatPicker as SeatPickerWidget } from '@seatlayer/js';\n\n// Host-side embed helper: grows the iframe on `seatlayer:height` and pins it on\n// `seatlayer:fullscreen`. Angular hosts depend on this package alone, so it has to\n// be reachable here rather than only from @seatlayer/js.\nexport { attachPickerFrame } from '@seatlayer/js';\nexport type { AttachPickerFrameOptions } from '@seatlayer/js';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["CoreSeatingChart","CoreSeasonPicker"],"mappings":"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"}