# Страницы и элементы слайдов

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

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

- Requested language: `ru-RU`

- Content language: `ru-RU`

- Documentation version: `1.2.0`

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

---

## ISlidePage

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

### Свойства страницы

| Свойство           | Тип                                     | Описание                                                          |
| ------------------ | --------------------------------------- | ----------------------------------------------------------------- |
| id                 | `string`                                | Уникальный идентификатор страницы.                                |
| pageType           | `PageType`                              | Тип страницы, например `SLIDE`, `MASTER` или `LAYOUT`.            |
| zIndex             | `number`                                | Порядок отрисовки страницы.                                       |
| title              | `string`                                | Заголовок страницы.                                               |
| description        | `string`                                | Описание страницы.                                                |
| pageBackgroundFill | `IColorStyle`                           | Заливка фона страницы.                                            |
| colorScheme?       | `ThemeColorType`                        | Цветовая схема темы, используемая страницей.                      |
| pageElements       | `{ [elementId: string]: IPageElement }` | Элементы страницы с идентификаторами элементов в качестве ключей. |
| slideProperties?   | `ISlideProperties`                      | Свойства обычных слайдов.                                         |
| layoutProperties?  | `ILayoutProperties`                     | Свойства страниц-макетов.                                         |
| masterProperties?  | `IMasterProperties`                     | Свойства страниц-образцов.                                        |

## IPageElement

`IPageElement` — общий контейнер элемента. У каждого элемента есть поля преобразования, такие как `left`, `top`, `width`, `height`, `angle`, `scaleX`, `scaleY`, `flipX` и `flipY`, а также один набор содержимого, выбранный с помощью `type`.

| Тип элемента                  | Содержимое    | Описание                                                                        |
| ----------------------------- | ------------- | ------------------------------------------------------------------------------- |
| `PageElementType.SHAPE`       | `shape`       | Предустановленная или пользовательская фигура, включая текст и свойства фигуры. |
| `PageElementType.IMAGE`       | `image`       | Свойства изображения и необязательные метаданные заполнителя или ссылки.        |
| `PageElementType.TEXT`        | `richText`    | Элемент с форматированным текстом. В поле `rich` можно хранить `IDocumentData`. |
| `PageElementType.SPREADSHEET` | `spreadsheet` | Устаревшее содержимое встроенного листа.                                        |
| `PageElementType.DOCUMENT`    | `document`    | Устаревшее содержимое встроенного документа.                                    |
| `PageElementType.SLIDE`       | `slide`       | Устаревшее содержимое встроенного слайда.                                       |

### Пример

```typescript
const page: ISlidePage = {
  id: 'slide-1',
  pageType: PageType.SLIDE,
  zIndex: 10,
  title: 'Agenda',
  description: '',
  pageBackgroundFill: { rgb: 'rgb(255,255,255)' },
  pageElements: {
    title: {
      id: 'title',
      zIndex: 1,
      left: 72,
      top: 64,
      width: 600,
      height: 80,
      title: 'Title',
      description: '',
      type: PageElementType.TEXT,
      richText: {
        text: 'Quarterly Review',
      },
    },
  },
}
```

### Примечания

* `pageOrder` задаёт порядок отображения слайдов, а `zIndex` — порядок отрисовки.
* Текстовые элементы могут хранить обычный `text` или расширенные данные документа в `richText.rich`.
* Для содержимого элементов, которым управляет плагин, используйте `customBlock`, а не перегружайте устаревшие поля встроенного содержимого.
