# Methodenreferenz

> Die vollständige öffentliche API des Entase-Clients – Buchung, Event-Abonnement, Runtime-Getter und -Setter sowie Bereinigung.

Die vollständige öffentliche API einer `Entase`-Instanz.

## Buchung

| Methode | Beschreibung |
|---|---|
| `book(eventID, options?)` | Öffnet den Checkout für ein Event. Siehe [Checkout öffnen](/developers/js-client/opening-the-checkout.md). |

## Events

| Methode | Beschreibung |
|---|---|
| `on(name, callback)` | Registriert einen Callback. Einer pro Event-Name – siehe [Events](/developers/js-client/events.md). |
| `off(name, callback?)` | Entfernt den für einen Namen registrierten Callback. Das Callback-Argument wird ignoriert. |

Beide akzeptieren eine durch Leerzeichen getrennte Zeichenfolge oder ein Array von Namen.

## Sprache

| Methode | Beschreibung |
|---|---|
| `getLocale()` | Gibt den konfigurierten Wert zurück, einschließlich des Literalwerts `'auto'`, falls dieser festgelegt wurde. |
| `setLocale(locale)` | Ändert die Checkout-Sprache für spätere Buchungen. |

`getLocale()` gibt die Konfiguration aus, nicht die Auflösung – bei der Standardkonfiguration gibt es `'auto'` zurück, nicht die Sprache, die tatsächlich verwendet wird. Der Wert `'auto'` wird beim Aufruf von `book()` anhand des Attributs `lang` Ihres `<html>`-Elements aufgelöst. Daher wird eine Änderung der Seitensprache nach dem Erstellen des Clients ohne weiteren Aufwand übernommen.

## Checkout-Modus

| Methode | Beschreibung |
|---|---|
| `getCheckoutMode()` | Gibt den aufgelösten Modus zurück, `'pane'` oder `'popup'` – niemals `'auto'`. |
| `setCheckoutMode(mode)` | Legt den Modus fest. `'auto'` führt die Erkennung erneut aus; ein nicht erkannter Wert wird ignoriert. |

Siehe [Checkout-Modi](/developers/js-client/checkout-modes.md).

## Tracking

| Methode | Beschreibung |
|---|---|
| `getTracking()` | Gibt das aktuelle Objekt mit Tracking-Parametern zurück. |
| `setTracking(tprm)` | Ersetzt die Tracking-Parameter. Sie werden nicht zusammengeführt – übergeben Sie den vollständigen Satz. |

Siehe [Tracking und Einwilligung](/developers/js-client/tracking-and-consent.md).

## Positionierung des Pop-ups

| Methode | Beschreibung |
|---|---|
| `getTopWindowCenter()` | Gibt `{ top, left }` zurück, den Punkt, auf den das Pop-up zentriert wird. |
| `setTopWindowCenter(top, left)` | Verschiebt diesen Punkt. |

Der Mittelpunkt wird beim Erstellen der Instanz einmalig anhand der Position des Browserfensters auf dem Bildschirm berechnet. Er wird nicht neu berechnet, wenn Besucher das Fenster verschieben oder dessen Größe ändern. Daher kann sich auf einer lange geöffneten Seite ein Pop-up fern vom aktuellen Fenster öffnen. Berechnen Sie ihn vor der Buchung neu, falls dies relevant ist:

```js
entase.setTopWindowCenter(
  window.screenTop + (window.innerHeight / 2),
  window.screenLeft + (window.innerWidth / 2)
);
```

Dies hat im Pane-Modus keine Auswirkung.

## Bereinigung

| Methode | Beschreibung |
|---|---|
| `destroy()` | Entfernt die Window-Listener des Clients. Die Instanz kann nicht wiederverwendet werden. |

Rufen Sie die Methode auf, wenn die Komponente oder Ansicht, der die Instanz gehört, nicht mehr vorhanden ist. Danach protokolliert `book()` einen Fehler und führt keine Aktion aus – erstellen Sie stattdessen eine neue Instanz.
