# Referência de métodos

> A superfície pública completa do cliente Entase – reserva, assinatura de eventos, getters e setters em tempo de execução e encerramento.

Toda a superfície pública 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)` | Registra um callback. Um para cada nome de evento – consulte [Eventos](/developers/js-client/events.md). |
| `off(name, callback?)` | Remove o callback registrado para um nome. O argumento de callback é ignorado. |

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

## Idioma

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

`getLocale()` informa a configuração, não a resolução – com o padrão, ele retorna `'auto'`, não o idioma que será realmente usado. O valor `'auto'` é resolvido no momento em que `book()` é chamado, a partir do atributo `lang` do seu elemento `<html>`, portanto, a alteração do idioma da página após a criação do cliente é identificada sem nenhuma ação adicional.

## Modo de checkout

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

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

## Rastreamento

| Método | Descrição |
|---|---|
| `getTracking()` | Retorna o objeto atual de parâmetros de rastreamento. |
| `setTracking(tprm)` | Substitui os parâmetros de rastreamento. Não são mesclados – passe o conjunto completo. |

Consulte [Rastreamento e consentimento](/developers/js-client/tracking-and-consent.md).

## Posicionamento do pop-up

| Método | Descrição |
|---|---|
| `getTopWindowCenter()` | Retorna `{ top, left }`, o ponto em que o pop-up é centralizado. |
| `setTopWindowCenter(top, left)` | Move esse ponto. |

O ponto central é calculado uma única vez, quando a instância é criada, a partir da posição da janela do navegador na tela. Ele não é recalculado quando o visitante move ou redimensiona a janela, portanto, em uma página de longa duração, um pop-up pode ser aberto longe da janela atual. Recalcule antes de reservar se isso for importante:

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

Isso não tem efeito no modo de painel.

## Encerramento

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

Chame-o quando o componente ou a visualização que possui a instância deixar de existir. Depois disso, `book()` registra um erro e não faz nada – crie uma nova instância.
