# Structure des données d’un Board

- Human documentation: [https://docs.univer.ai/fr-FR/guides/boards/model/board-data](https://docs.univer.ai/fr-FR/guides/boards/model/board-data)

- Agent Markdown: [https://docs.univer.ai/fr-FR/guides/boards/model/board-data.md](https://docs.univer.ai/fr-FR/guides/boards/model/board-data.md)

- Requested language: `fr-FR`

- Content language: `fr-FR`

- Documentation version: `1.2.0`

- Source: [boards/model/board-data.fr-FR.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/boards/model/board-data.fr-FR.mdx)

---

## IBoardData

`IBoardData` est le format d’instantané utilisé par Univer Boards. Il décrit une unité Board, notamment l’ordre et les données des pages, les ressources, les thèmes, la page active, le niveau de zoom et les paramètres du Board.

### Propriétés

| Propriété       | Type                                | Description                                                                                          |                                         |
| --------------- | ----------------------------------- | ---------------------------------------------------------------------------------------------------- | --------------------------------------- |
| id              | `string`                            | Identifiant unique de l’unité Board.                                                                 |                                         |
| rev?            | `number`                            | Numéro de révision facultatif utilisé par les couches de persistance ou de collaboration.            |                                         |
| name            | `string`                            | Nom du Board.                                                                                        |                                         |
| appVersion      | `string`                            | Version du package ayant créé l’instantané.                                                          |                                         |
| locale?         | `string`                            | Paramètres régionaux du Board.                                                                       |                                         |
| defaultPageSize | `IBoardPageSize`                    | Dimensions par défaut des pages du Board.                                                            |                                         |
| pageOrder       | `string[]`                          | Liste ordonnée des identifiants de page du Board.                                                    |                                         |
| pages           | `Record\<string, IBoardPage\>`      | Instantanés des pages indexés par identifiant de page.                                               |                                         |
| activePageId?   | `string`                            | Identifiant de la page active.                                                                       |                                         |
| theme?          | `IBoardThemeData`                   | Thème actuel du Board.                                                                               |                                         |
| themes?         | `Record\<string, IBoardThemeData\>` | Autres thèmes nommés.                                                                                |                                         |
| zoomRatio?      | `number`                            | Niveau de zoom actuel.                                                                               |                                         |
| resources?      | `IResources`                        | Ressources externes utilisées par les images, le texte enrichi, les tableaux et les autres éléments. |                                         |
| custom?         | \`Record\<string, unknown>          | null\`                                                                                               | Métadonnées définies par l’application. |
| boardSettings?  | `IBoardSettings`                    | Paramètres d’interface et d’interaction du Board.                                                    |                                         |

### Données des pages

`IBoardPage` stocke les éléments par identifiant et utilise `elementOrder` pour définir leur ordre d’affichage. Si vous construisez vous-même un instantané, veillez à maintenir ces deux structures synchronisées.

```ts
const boardData = {
  id: 'board-1',
  name: 'Planning board',
  appVersion: '1.0.0',
  defaultPageSize: { width: 1920, height: 1080 },
  pageOrder: ['page-1'],
  pages: {
    'page-1': {
      id: 'page-1',
      pageType: 'page',
      name: 'Page 1',
      elementOrder: ['text-1'],
      elements: {
        'text-1': {
          id: 'text-1',
          type: 'text',
          transform: { left: 120, top: 96, width: 240, height: 80 },
          text: 'Kickoff',
        },
      },
    },
  },
  activePageId: 'page-1',
}
```

## Utilisation

`IBoardData` sert principalement à :

1. Créer une unité `UniverInstanceType.UNIVER_BOARD`.
2. Enregistrer et restaurer des documents Board.
3. Préparer les données pour l’importation, l’exportation ou le traitement côté serveur.
4. Préremplir un Board avec des pages, des éléments et des paramètres avant son affichage.

> [!WARNING]
> Les objets d’instantané sont des données de persistance. Une fois le Board en cours d’exécution, privilégiez les API Facade plutôt que de modifier directement l’objet d’instantané.
