Skip to content

SkyRadioFilter ​

Фільтр-чіп з одиничним вибором радіо-кнопками. На відміну від SkySelectFilter, вибір не закриває панель, є «Очистити» і «Готово», а окремим пунктам можна дати числовий інпут (inputFor) — як «Рух клієнтів» в адмінці. Оболонку тримає SkyFilterDropdown, метрики рядків ті самі, що й у SkyCheckboxFilter.

Демо ​

Приклад ​

vue
<script setup>
import { ref } from 'vue'
import { SkyRadioFilter } from '@skyservice-developers/vue-dev-kit'

const payment = ref(null)
const options = [
  { value: 'cash', name: 'Готівка' },
  { value: 'card', name: 'Картка' },
]
</script>

<template>
  <SkyRadioFilter v-model="payment" title="Спосіб оплати" :options="options" />
</template>

Пункти з числом ​

vue
<script setup>
const motion = ref({ value: null, input: '' })
</script>

<template>
  <SkyRadioFilter
    v-model="motion"
    title="Рух клієнтів"
    :options="motionOptions"
    :input-for="['come', 'remove']"
    input-hint="клієнтів"
  />
</template>

З inputFor значення стає { value, input }. Введення в інпут одночасно обирає пункт. Поки пункт з інпутом обрано, а числа немає, інпут підсвічується червоним, а тригер показує просто назву фільтра: фільтр ще не застосований. Перемикання на пункт без інпуту скидає число.

Props ​

PropТипЗа замовчуваннямОпис
titleString—Заголовок фільтра
optionsArray<{ value, name }>—Варіанти
modelValueString | Number | null / { value, input }nullОбране (v-model). Форма { value, input } — коли задано inputFor
inputForArray<String | Number>[]Пункти з числовим інпутом
inputHintString''Підпис праворуч від інпуту
clearableBooleantrueКнопка «Очистити»
searchableBooleanfalseПошук по списку — для довгих списків
clearLabelString'Очистити'
doneLabelString'Готово'
searchPlaceholderString'Пошук'
emptyLabelString'Нічого не знайдено'Коли пошук нічого не знайшов
disabledBooleanfalseВимкнений стан

Events ​

ПодіяPayloadОпис
update:modelValuevalue | { value, input } | nullЗмінився вибір

Тригер ​

  • нічого не обрано — назва фільтра;
  • обрано — назва варіанта (довша за 20 символів обрізається);
  • з числом — назва варіанта + число бейджем.

CSS-змінні ​

ЗміннаЗа замовчуваннямОпис
--sky-checkbox-accent#28a745Колір обраного кружечка (спільний з чекбоксами)
--sky-filter-option-font-size10ptРозмір тексту варіантів
--sky-filter-list-max-height—Максимальна висота списку

Решта — від SkyFilterDropdown.

Пов'язане ​

  • SkySelectFilter — одиничний вибір, що закривається одразу після кліку.
  • SkyFilters — рядок фільтрів; там це type: 'radio'.

Опубліковано під ліцензією MIT.