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

<Meta title='@dxtmisha/vi/functional-basic/Functions/setValues - Quản lý danh sách các giá trị đã chọn'/>

# `setValues`

Xử lý việc cập nhật các giá trị đã chọn dựa trên chế độ lựa chọn (đơn hoặc đa). Cho phép thêm, xóa hoặc thay thế các giá trị với sự hỗ trợ của các ràng buộc về số lượng phần tử tối đa.

**Tham số:**
- `selected: T | T[] | undefined` — Các giá trị hiện đang được chọn.
- `value: any` — Giá trị mới cần xử lý.
- `options` — Một đối tượng chứa các thiết lập:
    - `multiple: boolean` — Chế độ đa lựa chọn (mặc định là `false`).
    - `maxlength: number` — Số lượng phần tử tối đa cho chế độ đa lựa chọn (mặc định là `0` — không giới hạn).
    - `alwaysChange: boolean` — Cờ ép buộc thay thế giá trị (mặc định là `true`).
    - `notEmpty: boolean` — Ngăn không cho danh sách bị xóa sạch hoàn toàn (mặc định là `false`).

**Trả về:**
`T | T[] | undefined` — Trạng thái mới của các giá trị đã chọn.

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

// Lựa chọn đơn
console.log(setValues(1, 2, {})) // 2

// Đa lựa chọn (bật/tắt)
let list = [1, 2]
list = setValues(list, 2, { multiple: true }) // [1] (xóa giá trị đang tồn tại)
list = setValues(list, 3, { multiple: true }) // [1, 3] (thêm giá trị mới)
```
