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

<Meta title='@dxtmisha/ru/functional-basic/Classes/SearchListOptions - Управление Опциями Списка Поиска'/>

# Класс SearchListOptions

Класс `SearchListOptions` отвечает за управление и предоставление доступа к параметрам конфигурации, используемым в системе `SearchList`. Он гарантирует использование значений по умолчанию, когда конкретные параметры не указаны.

## Ключевые особенности

- **Централизованная конфигурация** — предоставляет единую точку доступа ко всем настройкам, связанным с поиском.
- **Обработка значений по умолчанию** — автоматически применяет разумные параметры (например, лимит, задержку), если они отсутствуют в предоставленных опциях.
- **Fluent Interface** — поддерживает цепочку вызовов для установки новых опций.

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

Для инициализации объекта вызовите конструктор `SearchListOptions(options)`.

**Параметры:**
- `options?: SearchOptions` — объект, содержащий конфигурацию поиска.

```typescript
import { SearchListOptions } from '@dxtmisha/functional-basic'

const options = new SearchListOptions({
  limit: 3,
  delay: 300,
  findExactMatch: true
})

console.log(options.getLimit()) // 3
```

## Методы

### Информационные

- `getOptions(): SearchOptions` — Возвращает текущий объект настроек поиска.
- `getLimit(): number` — Возвращает минимальное количество символов, необходимое для запуска поиска (по умолчанию `2`).
- `getReturnEverything(): boolean` — Возвращает, следует ли возвращать все элементы, даже если они не соответствуют поисковому запросу (по умолчанию `false`).
- `getDelay(): number` — Возвращает задержку поиска в миллисекундах (по умолчанию `0`).
- `getFindExactMatch(): boolean` — Возвращает, следует ли выполнять поиск с точным совпадением (по умолчанию `false`).
- `getClassName(): string` — Возвращает имя CSS-класса, используемое для выделения совпадений (по умолчанию `'sys-search-selection'`).

### Настройка (Сеттеры)

- `setOptions(options: SearchOptions): this` — Устанавливает новые опции поиска и возвращает текущий экземпляр для цепочки вызовов.

## Типы

### SearchOptions

Основной объект конфигурации для системы поиска. Все поля необязательны:

- `limit?: number` — минимальное количество символов для запуска поиска. По умолчанию: `2`.
- `returnEverything?: boolean` — если `true`, возвращает все элементы независимо от совпадения. По умолчанию: `false`.
- `delay?: number` — задержка перед выполнением поиска в миллисекундах. По умолчанию: `0`.
- `findExactMatch?: boolean` — включает режим точного совпадения слов. По умолчанию: `false`.
- `classSearchName?: string` — CSS класс для выделения совпадений. По умолчанию: `'sys-search-selection'`.
