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

<Meta title='@dxtmisha/ru/functional-basic/Functions/isSelectedByList - Проверка выбора для списка'/>

# `isSelectedByList`

Комбинированная утилита, расширяющая функционал базовой проверки `isSelected`. Она позволяет проверить, соответствуют ли **все элементы** из переданного списка (`values`) критериям целевой выборки (`selected`).

Если на вход подается одно значение, а не массив, функция просто делегирует проверку напрямую в `isSelected`. Однако если на вход поступает массив значений (`values`), функция использует метод массива `.every()`, чтобы убедиться, что **каждый отдельный элемент** успешно проходит индивидуальную проверку `isSelected(item, selected)`.

**Параметры:**
- `values: T | T[]` — Одиночное значение или массив значений, каждое из которых должно быть проверено.
- `selected: T | T[]` — Целевой критерий отбора (строка, число или массив допустимых значений).

**Возвращает:**
`boolean` — Вернет `true` только в том случае, если абсолютно все переданные элементы удовлетворяют списку проверки.

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

// Успешная валидация всего списка по одиночному критерию
console.log(isSelectedByList(['apple', 'apple'], 'apple')) // true

// Успешная валидация, если каждый элемент из values содержится в массиве selected
console.log(isSelectedByList(['apple', 'cherry'], ['banana', 'apple', 'cherry'])) // true

// Провал. 'date' отсутствует в списке разрешений (selected). Вернет false из-за .every(). 
console.log(isSelectedByList(['apple', 'date'], ['banana', 'apple', 'cherry'])) // false

// Если передано одиночное значение как values, работает идентично isSelected
console.log(isSelectedByList('apple', 'apple')) // true
```
