# Referencia de métodos

> Toda la interfaz pública del cliente de Entase – reserva, suscripción a eventos, getters y setters de tiempo de ejecución y desmontaje.

Toda la interfaz pública de una instancia de `Entase`.

## Reserva

| Método | Descripción |
|---|---|
| `book(eventID, options?)` | Abre el proceso de compra de un evento. Consulta [Abrir el proceso de compra](/developers/js-client/opening-the-checkout.md). |

## Eventos

| Método | Descripción |
|---|---|
| `on(name, callback)` | Registra una función de callback. Una por nombre de evento – consulta [Eventos](/developers/js-client/events.md). |
| `off(name, callback?)` | Elimina la función de callback registrada para un nombre. El argumento de callback se ignora. |

Ambos aceptan una cadena separada por espacios o un array de nombres.

## Configuración regional

| Método | Descripción |
|---|---|
| `getLocale()` | Devuelve el valor configurado, incluido el literal `'auto'` si ese es el valor establecido. |
| `setLocale(locale)` | Cambia el idioma del proceso de compra para reservas posteriores. |

`getLocale()` informa de la configuración, no de la resolución – con el valor predeterminado devuelve `'auto'`, no el idioma que se utilizará realmente. El valor `'auto'` se resuelve en el momento en que se llama a `book()`, a partir del atributo `lang` de tu elemento `<html>`, por lo que los cambios en el idioma de la página después de crear el cliente se detectan sin necesidad de hacer nada más.

## Modo de proceso de compra

| Método | Descripción |
|---|---|
| `getCheckoutMode()` | Devuelve el modo resuelto, `'pane'` o `'popup'` – nunca `'auto'`. |
| `setCheckoutMode(mode)` | Establece el modo. `'auto'` vuelve a ejecutar la detección; se ignora un valor no reconocido. |

Consulta [Modos de proceso de compra](/developers/js-client/checkout-modes.md).

## Seguimiento

| Método | Descripción |
|---|---|
| `getTracking()` | Devuelve el objeto actual de parámetros de seguimiento. |
| `setTracking(tprm)` | Sustituye los parámetros de seguimiento. No se combinan – pasa el conjunto completo. |

Consulta [Seguimiento y consentimiento](/developers/js-client/tracking-and-consent.md).

## Posicionamiento de la ventana emergente

| Método | Descripción |
|---|---|
| `getTopWindowCenter()` | Devuelve `{ top, left }`, el punto en el que se centra la ventana emergente. |
| `setTopWindowCenter(top, left)` | Mueve ese punto. |

El punto central se calcula una vez, al crear la instancia, a partir de la posición de la ventana del navegador en la pantalla. No se vuelve a calcular cuando el visitante mueve o redimensiona la ventana, por lo que, en una página de larga duración, una ventana emergente puede abrirse lejos de la ventana actual. Vuelve a calcularlo antes de reservar si es importante:

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

Esto no tiene efecto en el modo de panel.

## Desmontaje

| Método | Descripción |
|---|---|
| `destroy()` | Elimina los listeners de ventana del cliente. La instancia no se puede reutilizar. |

Llámalo cuando desaparezca el componente o la vista que posee la instancia. Después, `book()` registra un error y no hace nada – crea una instancia nueva en su lugar.
