# Opções do construtor

> Todas as opções aceites por new Entase(), com o respetivo valor predefinido e efeito. Todas as opções são opcionais e a maioria pode ser substituída para cada reserva.

Todas as opções são opcionais. Os valores abaixo são os valores predefinidos que o cliente aplica quando omite uma opção.

```js
const entase = new Entase({
  pk: null,
  locale: 'auto',
  checkoutMode: 'auto',
  collectConsent: true,
  backdrop: true,
  backdropColor: '#000000',
  tprm: {},
  pane:  { width: 800, height: '100%' },
  popup: { width: 800, height: 1000 }
});
```

## Opções

| Nome | Tipo | Predefinição | Descrição |
|---|---|---|---|
| `pk` | cadeia de caracteres | `null` | A sua chave publicável. O cliente envia-a quando verifica se o seu domínio tem permissão para utilizar o checkout integrado. Sem ela, todos os checkouts são abertos como pop-ups. |
| `locale` | cadeia de caracteres | `'auto'` | Idioma do checkout. `'auto'` lê o atributo `lang` do seu elemento `<html>`. |
| `checkoutMode` | cadeia de caracteres | `'auto'` | `'auto'`, `'pane'` ou `'popup'`. Consulte [Modos de checkout](/developers/js-client/checkout-modes.md). Um valor não reconhecido reverte para `'auto'`. |
| `collectConsent` | booleano | `true` | Define se o checkout pede ao visitante para aceitar o aviso dos termos. Depois de aceite, a resposta é guardada num cookie e este passo é ignorado. |
| `backdrop` | booleano | `true` | Define se a página por trás do checkout deve ser escurecida. `false` também desativa o bloqueio de deslocamento da página. |
| `backdropColor` | cadeia de caracteres | `'#000000'` | Cor da área escurecida, como valor de cor CSS. |
| `tprm` | objeto | `{}` | Parâmetros de rastreio anexados ao URL do checkout como parâmetros de consulta. Consulte [Rastreio e consentimento](/developers/js-client/tracking-and-consent.md). |
| `pane` | objeto | `{ width: 800, height: '100%' }` | Tamanho do painel integrado. Ignorado no modo pop-up. |
| `popup` | objeto | `{ width: 800, height: 1000 }` | Tamanho da janela pop-up, em píxeis. Ignorado no modo painel. |

## Dimensionamento do painel e do pop-up

`pane.width` aceita um número (píxeis) ou qualquer comprimento CSS – `'720px'`, `'50%'`, `'40vw'` ou uma expressão `calc()`. Um número simples é tratado como píxeis.

O painel fica limitado a esta largura em computadores e ocupa toda a largura em dispositivos móveis, onde é aplicado `pane.height`. A mudança entre os dois ocorre quando a janela de visualização é mais estreita do que a largura configurada; quando a largura é indicada como uma unidade relativa, a mudança ocorre aos 800 px.

`popup.width` e `popup.height` aceitam apenas números em píxeis, e a janela é centrada no ecrã do visitante. Se o ecrã não for suficientemente alto para a altura solicitada, a janela é reduzida para caber.

## Fundo

O fundo é escurecido mais intensamente por trás de um pop-up do que de um painel, porque um pop-up precisa que a página subjacente pareça inativa. Defina `backdrop: false` para remover totalmente o escurecimento – isto também mantém a página deslocável por trás do checkout.

`backdropColor` é aplicado tal como está, pelo que pode ser qualquer cor CSS válida. Utilize-o para corresponder a um site escuro ou com marca, e não para ocultar o fundo; para isso, `backdrop: false` é a opção correta.

## Substituições por reserva

`checkoutMode`, `collectConsent`, `backdrop`, `backdropColor`, `pane` e `popup` podem ser substituídos para uma única reserva, passando-os a `book()`. O valor ao nível da instância mantém-se inalterado para as chamadas seguintes:

```js
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });

// Esta reserva abre num formato mais largo, sem escurecimento.
entase.book('EVENT_ID', {
  pane: { width: '60vw' },
  backdrop: false
});
```

`pk` e `tprm` não são opções por reserva – `pk` identifica a conta para toda a página e os parâmetros de rastreio são alterados com `setTracking()` quando precisam de ser diferentes.
