# Univer Slides API

- Human documentation: [https://docs.univer.ai/fr-FR/guides/slides/features/core/slides-api](https://docs.univer.ai/fr-FR/guides/slides/features/core/slides-api)

- Agent Markdown: [https://docs.univer.ai/fr-FR/guides/slides/features/core/slides-api.md](https://docs.univer.ai/fr-FR/guides/slides/features/core/slides-api.md)

- Requested language: `fr-FR`

- Content language: `fr-FR`

- Documentation version: `1.2.0`

- Source: [slides/features/core/slides-api.fr-FR.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/slides/features/core/slides-api.fr-FR.mdx)

---

La Facade Slides ajoute des objets de présentation et de diapositive à `FUniver`. Importez son entrée à effet de bord avant de créer l’objet API :

```ts
import { FUniver } from '@univerjs/core/facade'

import '@univerjs-pro/slides/facade'

const univerAPI = FUniver.newAPI(univer)
```

## Créer et rechercher des présentations

```ts
const presentation = univerAPI.createPresentation({
  id: 'quarterly-review',
  name: 'Quarterly review',
})

const activePresentation = univerAPI.getActivePresentation()
const samePresentation = univerAPI.getPresentation(presentation.getId())
```

`createPresentation()` accepte un instantané `ISlideData` partiel. Pour restaurer une présentation, fournissez un instantané renvoyé par `save()`.

## Manipuler l’unité de présentation

`FPresentation` expose l’identité, le nom, la taille de page, les diapositives, la diapositive active, les transitions, les autorisations et un instantané détaché :

```ts
presentation.setName('FY 2027 review')

const opening = presentation.getSlideByIndex(0) ?? presentation.appendSlide({
  name: 'Opening',
})

presentation.setActiveSlide(opening)
const snapshot = presentation.save()
```

Ne modifiez pas `snapshot` pour mettre à jour une présentation active. Utilisez les méthodes Facade ou les commandes afin de synchroniser le rendu et l’historique.

## Accéder à une diapositive

`FSlide` donne accès à l’arrière-plan, aux notes du présentateur, à la transition et aux éléments d’une diapositive :

```ts
const slide = presentation.getActiveSlide()

if (slide) {
  const elements = slide.getElements()
  const notes = slide.getSpeakerNotes()
}
```

Consultez [Diapositives et mises en page](https://docs.univer.ai/fr-FR/guides/slides/features/core/slides-and-layouts.md), [Formes et texte](https://docs.univer.ai/fr-FR/guides/slides/features/core/shapes-and-text.md) et [Images et groupes](https://docs.univer.ai/fr-FR/guides/slides/features/core/images-and-groups.md) pour les opérations détaillées.

## Résoudre les cibles de commandes

Les paramètres d’un événement de commande peuvent contenir les identifiants de présentation et de diapositive. Résolvez-les sans dépendre de la sélection active :

```ts
const listener = univerAPI.addEvent(
  univerAPI.Event.CommandExecuted,
  ({ params }) => {
    const target = univerAPI.getSlideCommandTarget(params)
    console.log(target?.presentation.getId(), target?.slide.getId())
  }
)
```

Libérez l’écouteur lorsque son composant hôte est supprimé.

## Décharger une présentation

Déchargez une unité Slides par son identifiant lorsqu’elle n’est plus nécessaire. Détruisez l’instance racine `univer` uniquement lorsque toute l’application est fermée.

```ts
const presentation = univerAPI.getActivePresentation()

if (presentation) {
  univerAPI.disposeUnit(presentation.getId())
}
```
