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

<Meta title='@dxtmisha/functional/ru/About'/>

# @dxtmisha/functional

Библиотека функциональных утилит для экосистемы DXT UI. Содержит готовые решения для типовых задач веб-разработки: работа с HTTP-запросами, геолокация, работа с датами, кеширование данных и многое другое.

## Что входит в пакет

### Классы (20+)

- **Api** — выполнение HTTP-запросов с поддержкой кеширования, загрузочных индикаторов и эмуляции ответов
- **Geo** — определение страны и языка пользователя, работа с геоданными и часовыми поясами
- **Datetime** — работа с датами: форматирование, манипуляции, сравнение с учётом локализации
- **Cache** — система кеширования данных с автоматической инвалидацией
- **GeoFlag** — доступ к флагам стран (200+) с локализованными названиями
- **GeoPhone** — телефонные коды и маски форматирования для всех стран
- **GeoIntl** — интернационализация: форматирование чисел, валют, дат по региональным стандартам
- **Cookie** — удобная работа с cookies
- **Hash** — управление параметрами в URL hash
- **DataStorage** — типизированная работа с localStorage и sessionStorage
- **Loading** — глобальное управление индикаторами загрузки
- **Translate** — система переводов с поддержкой подстановок
- **Icons** — управление иконками и SVG-спрайтами

### Композаблы для Vue 3 (10+)

Реактивные обёртки над классами для использования в Vue-компонентах:

- **useApiRef** — реактивные HTTP-запросы с автоматическим управлением состоянием загрузки
- **useGeoIntlRef** — реактивное форматирование с учётом локали пользователя
- **useStorageRef** — двусторонняя синхронизация ref с localStorage/sessionStorage
- **useHashRef** — двусторонняя синхронизация ref с URL hash
- **useCookieRef** — реактивная работа с cookies
- **useLoadingRef** — реактивное отслеживание состояния загрузки
- **useTranslateRef** — реактивная система переводов

### Функции-помощники (100+)

**Работа с массивами:** преобразование в массив, фильтрация, итерация, заполнение, уникальные значения

**Работа с объектами:** глубокое копирование, слияние объектов, получение значений по пути, сравнение

**Работа со строками:** преобразование регистра (camelCase, kebabCase), заполнение строк, применение шаблонов

**Валидация:** проверка типов данных, проверка на заполненность, сравнение значений

**DOM-утилиты:** поиск элементов, создание элементов, работа с атрибутами, прокрутка

**Математика:** безопасное преобразование в числа, проценты, случайные числа, пошаговые значения

**Асинхронность:** безопасное выполнение промисов и функций, работа с фреймами анимации

**Буфер обмена:** копирование и чтение данных из буфера
