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

<Meta title='@dxtmisha/ru/functional-basic/Classes/SearchListItem - Управление Элементом Поиска'/>

# Класс SearchListItem

Класс `SearchListItem` представляет текущее состояние ввода поиска. Он управляет значением для поиска и определяет, следует ли запускать операцию поиска на основе настроенных параметров.

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

- **Управление значением** — предоставляет удобные методы для получения и установки строки поиска.
- **Логика активации** — определяет, должен ли быть запущен поиск, основываясь на длине строки поиска.
- **Типизация** — включает Type Guards для проверки заполненности значения.

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

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

**Параметры:**
- `value: string | undefined` — начальное значение поиска.
- `options: SearchListOptions` — экземпляр `SearchListOptions` для получения лимита поиска.

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

const options = new SearchListOptions({ limit: 3 })
const item = new SearchListItem('he', options)

console.log(item.isSearch()) // false (длина < 3)
item.set('hello')
console.log(item.isSearch()) // true (длина >= 3)
```

## Методы

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

- `is(): boolean` — Проверяет, что текущее значение не является пустым или undefined.
- `isSearch(): boolean` — Проверяет, следует ли выполнять поиск (значение существует И длина >= лимита).
- `get(): string` — Возвращает текущее значение поиска в виде строки.

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

- `set(value?: string): this` — Устанавливает новое значение поиска и возвращает текущий экземпляр.

## Активация поиска

Класс `SearchListItem` выступает в роли фильтра, который определяет, должна ли система поиска начать обработку данных. Это реализуется через метод `isSearch()`, который использует опцию `limit` из `SearchListOptions`.

- **Минимальная длина (`limit`)**: Поиск считается активным только в том случае, если количество символов в строке поиска больше или равно установленному лимиту.
- **Поведение по умолчанию**: По умолчанию лимит равен `2`. Это означает, что поиск по букве `"а"` не запустит процесс сопоставления, а по `"ад"` или `"админ"` — запустит.

Эта логика помогает избежать лишних вычислений и "шумных" результатов, когда пользователь ввел только один символ.
