import {Meta} from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/ru/scripts/Classes/StylesProperties - Диспетчер преобразования свойств'/>

# Класс StylesProperties

Класс `StylesProperties` выступает в роли центрального диспетчера для преобразования свойств дизайна в SCSS. Он обходит ветви свойств и делегирует фактическое преобразование специализированным классам `StylesTo*` в зависимости от типа переменной свойства.

## Ключевые возможности

- **Диспетчеризация по типу** — Автоматически выбирает нужный преобразователь (например, `StylesToVar`, `StylesToProperty`, `StylesToSelector`) на основе `PropertyType`.
- **Рекурсивная обработка** — Обрабатывает вложенные структуры свойств, рекурсивно инициализируя себя для подветвей.
- **Управление вспомогательными блоками** — Интеллектуально оборачивает селекторы и псевдоэлементы в блоки `& { ... }`, когда они являются частью более крупной вложенной структуры.
- **Отслеживание отступов** — Управляет и увеличивает уровни отступов при переходе во вложенные ветви свойств.
- **Сохранение состояния** — Отслеживает, обрабатывается ли первый элемент в блоке, для правильного управления вертикальными отступами.

## Инициализация

Для инициализации объекта вызовите конструктор `StylesProperties(space, property, parent)`.

**Параметры:**
- `space: string` — строка отступа.
- `property: PropertyItemsItem` — текущая обрабатываемая ветвь дерева свойств.
- `parent?: PropertyItem` — родительский элемент свойства (необязательно).

```typescript
import { StylesProperties } from '@dxtmisha/scripts'

// 1. Инициализация StylesProperties
const dispatcher = new StylesProperties(indentation, propertyBranch, parentItem)
```

## Методы

### Управление

- `make(): string[]` — Основная точка входа. Обходит свойства в текущей ветке и возвращает массив строк SCSS, представляющих преобразованные правила.
