npm package: @splash-tech/jackpot-sdk
Description: SDK for managing jackpot widgets in iframes
Author: Splash Tech
Latest version: 1.1.6

# Splash Jackpot SDK

Splash Jackpot SDK allows operators to integrate jackpot widgets into their applications.

The SDK provides two widgets:

- **Footer Widget** – displays current jackpot values to players
- **Win Widget** – shows a full-screen animation when a jackpot is won

Widgets run inside **isolated iframes hosted by Splash infrastructure**.  
Communication between the host application and widgets is handled automatically by the SDK using `postMessage`.

---

# Installation

```bash
npm install @splash-tech/jackpot-sdk
```

---

# Quick Start

## Launch Footer Widget

```ts
import { splashJackpot } from '@splash-tech/jackpot-sdk';

splashJackpot.footerWidget.launch({
  data: widgetData,
});
```

---

## Launch Win Widget

```ts
import { splashJackpot } from '@splash-tech/jackpot-sdk';

splashJackpot.winWidget.launch({
  data: winData,
});
```

---

# Widget Launch Parameters

| Parameter | Type   | Default       | Description                                               |
| --------- | ------ | ------------- | --------------------------------------------------------- |
| data      | object | null          | Widget data from Splash backend                           |
| container | string | document.body | CSS selector where widget will be injected                |
| mode      | string | production    | SDK environment (`local`, `dev`, `staging`, `production`) |
| jackpotId | string | undefined     | Jackpot identifier                                        |
| tag       | string | undefined     | Game tag                                                  |
| brand     | string | undefined     | Operator brand                                            |

Example:

```ts
splashJackpot.footerWidget.launch({
  data: widgetData,
  container: '#game-container',
  mode: 'production',
  jackpotId: 'jackpot-id',
  tag: 'game-tag',
  brand: 'brand-name',
});
```

---

# Widget API

## Footer Widget

- `launch()` – launch widget
- `updateData()` – update jackpot values
- `isLaunched()` – check if widget is active
- `addEventListener()` – listen to widget events
- `removeEventListener()` – remove specific listener
- `removeAllEventListeners()` – remove all listeners
- `destroy()` – remove widget from DOM

## Win Widget

- `launch()`
- `isLaunched()`
- `addEventListener()`
- `removeEventListener()`
- `removeAllEventListeners()`
- `destroy()`

---

# Events

## Footer Widget

| Event             | Description                        |
| ----------------- | ---------------------------------- |
| showPopup         | Footer popup opened                |
| hidePopup         | Footer popup closed                |
| participateChange | User toggled jackpot participation |

Example:

```ts
splashJackpot.footerWidget.addEventListener('showPopup', () => {
  console.log('Popup opened');
});
```

---

## Win Widget

| Event | Description       |
| ----- | ----------------- |
| close | Win widget closed |

---

# Cleanup

When the widget is no longer needed:

```ts
splashJackpot.footerWidget.removeAllEventListeners();
splashJackpot.footerWidget.destroy();
```

---

# Documentation

For full integration instructions, backend communication flow, and advanced usage, refer to the complete [documentation](https://www.notion.so/Jackpot-Widgets-320975a6f2ab80118284e6165d569843?pvs=25#325975a6f2ab8096be15dfc7eda06028).