# Constructoropties

> Elke optie die wordt geaccepteerd door new Entase(), met de standaardwaarde en het effect ervan. Alle opties zijn optioneel en de meeste kunnen per boeking worden overschreven.

Elke optie is optioneel. De onderstaande waarden zijn de standaardwaarden die de client toepast wanneer je er een weglaat.

```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 }
});
```

## Opties

| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
| `pk` | string | `null` | Je publiceerbare sleutel. De client verstuurt deze bij het controleren of je domein inline afrekenen mag gebruiken. Zonder deze sleutel wordt elk afrekenproces geopend als een pop-up. |
| `locale` | string | `'auto'` | Taal van het afrekenproces. `'auto'` leest het kenmerk `lang` van je `<html>`-element. |
| `checkoutMode` | string | `'auto'` | `'auto'`, `'pane'` of `'popup'`. Zie [Afrekenmodi](/developers/js-client/checkout-modes.md). Een niet-herkende waarde valt terug op `'auto'`. |
| `collectConsent` | boolean | `true` | Of het afrekenproces de bezoeker vraagt om de kennisgeving over de voorwaarden te accepteren. Zodra dit is geaccepteerd, wordt het antwoord opgeslagen in een cookie en wordt de stap overgeslagen. |
| `backdrop` | boolean | `true` | Of de pagina achter het afrekenproces moet worden verduisterd. `false` schakelt ook de vergrendeling van het scrollen op de pagina uit. |
| `backdropColor` | string | `'#000000'` | Kleur van het verduisterde gebied, als CSS-kleurwaarde. |
| `tprm` | object | `{}` | Trackingparameters die als queryparameters aan de afreken-URL worden toegevoegd. Zie [Tracking en toestemming](/developers/js-client/tracking-and-consent.md). |
| `pane` | object | `{ width: 800, height: '100%' }` | Grootte van het inline paneel. Genegeerd in de pop-upmodus. |
| `popup` | object | `{ width: 800, height: 1000 }` | Grootte van het pop-upvenster, in pixels. Genegeerd in paneelmodus. |

## Grootte van paneel en pop-up

`pane.width` accepteert een getal (pixels) of een willekeurige CSS-lengte – `'720px'`, `'50%'`, `'40vw'` of een `calc()`-expressie. Een gewoon getal wordt als pixels behandeld.

Het paneel wordt op desktop beperkt tot deze breedte en neemt op mobiel de volledige breedte in, waar in plaats daarvan `pane.height` van toepassing is. Er wordt tussen beide geschakeld wanneer de viewport smaller is dan de geconfigureerde breedte; wanneer de breedte als relatieve eenheid is opgegeven, vindt de omschakeling plaats bij 800px.

`popup.width` en `popup.height` zijn alleen getallen in pixels en het venster wordt gecentreerd op het scherm van de bezoeker. Als het scherm niet hoog genoeg is voor de gevraagde hoogte, wordt het venster verkleind zodat het past.

## Achtergrond

De achtergrond wordt achter een pop-up sterker verduisterd dan achter een paneel, omdat een pop-up de onderliggende pagina als inactief moet laten overkomen. Stel `backdrop: false` in om de verduistering volledig te verwijderen – hierdoor blijft de pagina achter het afrekenproces ook scrollbaar.

`backdropColor` wordt ongewijzigd toegepast en kan dus elke geldige CSS-kleur zijn. Gebruik deze optie om af te stemmen op een donkere site of een site met een eigen huisstijl, niet om de achtergrond te verbergen; daarvoor is `backdrop: false` de juiste optie.

## Overschrijvingen per boeking

`checkoutMode`, `collectConsent`, `backdrop`, `backdropColor`, `pane` en `popup` kunnen allemaal voor één boeking worden overschreven door ze door te geven aan `book()`. De waarde op instantieniveau blijft ongewijzigd voor volgende aanroepen:

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

// Alleen deze boeking opent breder, zonder verduistering.
entase.book('EVENT_ID', {
  pane: { width: '60vw' },
  backdrop: false
});
```

`pk` en `tprm` zijn geen opties per boeking – `pk` identificeert het account voor de hele pagina en trackingparameters worden gewijzigd met `setTracking()` wanneer ze moeten verschillen.
