# Структура данных презентации

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

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

- Requested language: `ru-RU`

- Content language: `ru-RU`

- Documentation version: `1.2.0`

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

---

## ISlideData

`ISlideData` — сохраняемый снимок одной презентации Univer Slides. Он хранит метаданные презентации, упорядоченную коллекцию слайдов, необязательные слои образцов и макетов, переходы, темы и ресурсы.

### Обязательные свойства

| Свойство          | Тип                          | Описание                                                           |
| ----------------- | ---------------------------- | ------------------------------------------------------------------ |
| `id`              | `string`                     | Уникальный ID презентации.                                         |
| `name`            | `string`                     | Отображаемое имя презентации.                                      |
| `defaultPageSize` | `ISlidePageSize`             | Ширина и высота по умолчанию для страниц без собственного размера. |
| `slideOrder`      | `string[]`                   | ID слайдов в порядке презентации.                                  |
| `slides`          | `Record<string, ISlidePage>` | Обычные слайды по их ID.                                           |

### Необязательные свойства

| Свойство                  | Тип                                       | Описание                                                     |
| ------------------------- | ----------------------------------------- | ------------------------------------------------------------ |
| `rev?`                    | `number`                                  | Ревизия снимка.                                              |
| `appVersion?`             | `string`                                  | Версия Univer, создавшая снимок.                             |
| `locale?`                 | `LocaleType`                              | Локаль презентации.                                          |
| `masterPageOrder?`        | `string[]`                                | ID страниц образцов в порядке хранения.                      |
| `masterPages?`            | `Record<string, ISlideMasterPage>`        | Страницы образцов по ID.                                     |
| `layoutPageOrder?`        | `string[]`                                | ID страниц макетов в порядке хранения.                       |
| `layoutPages?`            | `Record<string, ISlideLayoutPage>`        | Страницы макетов по ID.                                      |
| `handoutMasterPageOrder?` | `string[]`                                | ID образцов раздаточных материалов в порядке хранения.       |
| `handoutMasterPages?`     | `Record<string, ISlideHandoutMasterPage>` | Образцы раздаточных материалов по ID.                        |
| `notesMasterPageOrder?`   | `string[]`                                | ID образцов заметок в порядке хранения.                      |
| `notesMasterPages?`       | `Record<string, ISlideNotesMasterPage>`   | Образцы заметок по ID.                                       |
| `activeSlideId?`          | `string`                                  | ID активного слайда.                                         |
| `transitionRecords?`      | `Record<string, ISlideTransition>`        | Переиспользуемые переходы по их ID.                          |
| `slideTransitionRefs?`    | `Record<string, string>`                  | Соответствие ID слайдов и ID переходов.                      |
| `theme?`                  | `ISlideThemeData`                         | Тема презентации по умолчанию.                               |
| `themes?`                 | `Record<string, ISlideThemeData>`         | Дополнительные темы по ID.                                   |
| `zoomRatio?`              | `number`                                  | Сохраняемый масштаб презентации.                             |
| `resources?`              | `IResources`                              | Ресурсы, предоставленные Slides и функциональными плагинами. |
| `custom?`                 | `SlideCustomData`                         | Метаданные презентации, определённые приложением.            |

### Упорядоченные записи страниц

Каждый ID из `slideOrder` должен соответствовать записи в `slides`. Необязательные слои образцов, макетов, образцов раздаточных материалов и образцов заметок используют ту же пару из массива порядка и записей по ID. Если задан `activeSlideId`, он должен соответствовать записи в `slides`.

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

const slideData: ISlideData = {
  id: 'deck-1',
  name: 'План развития продукта',
  defaultPageSize: { width: 960, height: 540 },
  slideOrder: ['slide-1'],
  slides: {
    'slide-1': {
      id: 'slide-1',
      name: 'Введение',
      pageType: PageTypeEnum.Slide,
      elementOrder: [],
      elements: {},
    },
  },
  activeSlideId: 'slide-1',
}
```

### Использование

Передайте снимок в `univerAPI.createPresentation(slideData)`, чтобы восстановить презентацию. Получите текущий снимок `ISlideData` через `presentation.save()` для сохранения, экспорта, печати или обработки на сервере.

> [!WARNING: Внимание]
> Снимок предназначен для хранения данных и не является активным `SlideModel`. После запуска презентации используйте методы Slides Facade или зарегистрированные команды вместо непосредственного изменения объекта снимка.
