# Referência dos métodos

> A API pública completa do cliente Entase – reservas, subscrição de eventos, getters e setters em tempo de execução e limpeza.

A API pública completa de uma instância de `Entase`.

## Reserva

| Método | Descrição |
|---|---|
| `book(eventID, options?)` | Abre o checkout de um evento. Consulte [Abrir o checkout](/developers/js-client/opening-the-checkout.md). |

## Eventos

| Método | Descrição |
|---|---|
| `on(name, callback)` | Regista uma callback. Uma por nome de evento – consulte [Eventos](/developers/js-client/events.md). |
| `off(name, callback?)` | Remove a callback registada para um nome. O argumento de callback é ignorado. |

Ambos aceitam uma string separada por espaços ou um array de nomes.

## Idioma

| Método | Descrição |
|---|---|
| `getLocale()` | Devolve o valor configurado, incluindo o literal `'auto'` se esse tiver sido o valor definido. |
| `setLocale(locale)` | Altera o idioma do checkout para reservas posteriores. |

`getLocale()` indica a configuração, não a resolução – com a predefinição devolve `'auto'`, não o idioma que será efetivamente utilizado. O valor `'auto'` é resolvido no momento em que `book()` é chamado, a partir do atributo `lang` do seu elemento `<html>`, pelo que a alteração do idioma da página após a criação do cliente é detetada sem qualquer ação adicional.

## Modo de checkout

| Método | Descrição |
|---|---|
| `getCheckoutMode()` | Devolve o modo resolvido, `'pane'` ou `'popup'` – nunca `'auto'`. |
| `setCheckoutMode(mode)` | Define o modo. `'auto'` executa novamente a deteção; um valor não reconhecido é ignorado. |

Consulte [Modos de checkout](/developers/js-client/checkout-modes.md).

## Monitorização

| Método | Descrição |
|---|---|
| `getTracking()` | Devolve o objeto atual de parâmetros de monitorização. |
| `setTracking(tprm)` | Substitui os parâmetros de monitorização. Não são combinados – transmita o conjunto completo. |

Consulte [Monitorização e consentimento](/developers/js-client/tracking-and-consent.md).

## Posicionamento da janela pop-up

| Método | Descrição |
|---|---|
| `getTopWindowCenter()` | Devolve `{ top, left }`, o ponto em que a janela pop-up fica centrada. |
| `setTopWindowCenter(top, left)` | Move esse ponto. |

O ponto central é calculado uma vez, quando a instância é criada, com base na posição da janela do navegador no ecrã. Não é recalculado quando o visitante move ou redimensiona a janela, pelo que, numa página de longa duração, uma janela pop-up pode abrir fora da janela atual. Recalcule antes de reservar, se isso for importante:

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

Isto não tem qualquer efeito no modo de painel.

## Limpeza

| Método | Descrição |
|---|---|
| `destroy()` | Remove os ouvintes de janela do cliente. A instância não pode ser reutilizada. |

Chame-o quando o componente ou a vista que detém a instância deixar de existir. Depois disso, `book()` regista um erro e não faz nada – crie uma nova instância.
