# Structure des données des diapositives

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

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

- Requested language: `fr-FR`

- Content language: `fr-FR`

- Documentation version: `1.2.0`

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

---

## ISlideData

`ISlideData` est le snapshot persistant d’une présentation Univer Slides. Il stocke les métadonnées de la présentation, la collection ordonnée de diapositives, les couches optionnelles de masques et de dispositions, les transitions, les thèmes et les ressources.

### Propriétés obligatoires

| Propriété         | Type                         | Description                                                                    |
| ----------------- | ---------------------------- | ------------------------------------------------------------------------------ |
| `id`              | `string`                     | ID unique de l’unité de présentation.                                          |
| `name`            | `string`                     | Nom affiché de la présentation.                                                |
| `defaultPageSize` | `ISlidePageSize`             | Largeur et hauteur par défaut lorsqu’une page ne définit pas sa propre taille. |
| `slideOrder`      | `string[]`                   | IDs des diapositives dans l’ordre de la présentation.                          |
| `slides`          | `Record<string, ISlidePage>` | Diapositives normales indexées par ID.                                         |

### Propriétés optionnelles

| Propriété                 | Type                                      | Description                                                 |
| ------------------------- | ----------------------------------------- | ----------------------------------------------------------- |
| `rev?`                    | `number`                                  | Révision du snapshot.                                       |
| `appVersion?`             | `string`                                  | Version d’Univer ayant produit le snapshot.                 |
| `locale?`                 | `LocaleType`                              | Locale de la présentation.                                  |
| `masterPageOrder?`        | `string[]`                                | IDs des masques dans l’ordre stocké.                        |
| `masterPages?`            | `Record<string, ISlideMasterPage>`        | Masques indexés par ID.                                     |
| `layoutPageOrder?`        | `string[]`                                | IDs des dispositions dans l’ordre stocké.                   |
| `layoutPages?`            | `Record<string, ISlideLayoutPage>`        | Dispositions indexées par ID.                               |
| `handoutMasterPageOrder?` | `string[]`                                | IDs des masques de documents dans l’ordre stocké.           |
| `handoutMasterPages?`     | `Record<string, ISlideHandoutMasterPage>` | Masques de documents indexés par ID.                        |
| `notesMasterPageOrder?`   | `string[]`                                | IDs des masques de notes dans l’ordre stocké.               |
| `notesMasterPages?`       | `Record<string, ISlideNotesMasterPage>`   | Masques de notes indexés par ID.                            |
| `activeSlideId?`          | `string`                                  | ID de la diapositive active.                                |
| `transitionRecords?`      | `Record<string, ISlideTransition>`        | Transitions réutilisables indexées par ID.                  |
| `slideTransitionRefs?`    | `Record<string, string>`                  | Association des IDs de diapositives aux IDs de transitions. |
| `theme?`                  | `ISlideThemeData`                         | Thème par défaut de la présentation.                        |
| `themes?`                 | `Record<string, ISlideThemeData>`         | Thèmes supplémentaires indexés par ID.                      |
| `zoomRatio?`              | `number`                                  | Niveau de zoom persistant de la présentation.               |
| `resources?`              | `IResources`                              | Ressources fournies par Slides et ses plugins fonctionnels. |
| `custom?`                 | `SlideCustomData`                         | Métadonnées de présentation définies par l’application.     |

### Enregistrements de pages ordonnés

Chaque ID de `slideOrder` doit correspondre à une entrée de `slides`. Les couches optionnelles de masques, de dispositions, de masques de documents et de masques de notes suivent le même modèle de liste d’ordre et d’enregistrement indexé par ID. `activeSlideId`, s’il est défini, doit correspondre à une entrée de `slides`.

```typescript
import type { ISlideData } from '@univerjs-pro/slides'
import { PageTypeEnum } from '@univerjs-pro/slides'

const slideData: ISlideData = {
  id: 'deck-1',
  name: 'Feuille de route produit',
  defaultPageSize: { width: 960, height: 540 },
  slideOrder: ['slide-1'],
  slides: {
    'slide-1': {
      id: 'slide-1',
      name: 'Ouverture',
      pageType: PageTypeEnum.Slide,
      elementOrder: [],
      elements: {},
    },
  },
  activeSlideId: 'slide-1',
}
```

### Utilisation

Passez un snapshot à `univerAPI.createPresentation(slideData)` pour restaurer une présentation. Utilisez `presentation.save()` pour obtenir le snapshot `ISlideData` actuel afin de le persister, de l’exporter, de l’imprimer ou de le traiter côté serveur.

> [!WARNING: Attention]
> Un snapshot est une donnée de persistance, pas le `SlideModel` actif. Après le démarrage de la présentation, utilisez les méthodes Facade de Slides ou des commandes enregistrées au lieu de modifier l’objet snapshot.
