К содержимому

SusChipGroup ​

SusChipGroup

Ряд filter-chip — single или multi selection на Items + Model.

Пакет

SusKit · Атомы (коммерческий)

Открыть в песочнице

SusKit · Atoms

Свойства

ИмяТипПо умолчанию
ItemsProp<List<ChipGroupItem>>[]v-modelиз пресетов
ModelProp<string>""v-model
SelectionProp<List<string>>[]v-model
MultipleProp<bool>falsev-model
MandatoryProp<bool>falsev-model
ColumnProp<bool>falsev-model
DisabledProp<bool>falsev-model
ColorProp<string>"primary"v-model
VariantProp<string>"tonal"v-model
SizeProp<string>"default"v-model

Слоты

Слотов нет.

События

ИмяПолеPayload
ChangeOnChangestring
SelectionChangeOnSelectionChangeList<string>

Хуки стиля ​

Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:

  • keyboard-focus
  • sus-chip-group
  • sus-chip-group__chip
  • sus-chip-group__row
  • sus-chip-group--column
  • sus-chip-group--disabled
  • sus-chip-group--multiple
  • sus-hidden

Использование ​

Элементы задаются в коде (List<ChipGroupItem>). У каждого элемента есть Label, Value, опционально Disabled и опционально Count (счётчик чипа, см. SusChip). Ключ элемента — его Value, а при пустом Value — его Label; тот же ключ использует Model.

csharp
var group = new SusChipGroup();
group.Items.Value = new List<SusChipGroup.ChipGroupItem>
{
    new() { Label = "All", Value = "all" },
    new() { Label = "Weapons", Value = "weapons" },
    new() { Label = "Armor", Value = "armor" },
};
group.Model.Value = "all";
group.Mandatory.Value = true;
group.Variant.Value = "tonal";
group.Color.Value = "primary";
group.OnChange += value => { /* … */ };
PropRole
ItemsList<ChipGroupItem> — чипы для рендера
ModelВыбранное значение (одиночный режим)
Multiple / SelectionРежим множественного выбора + выбранные значения
MandatoryДержать хотя бы один элемент выбранным
ColumnРасположить чипы вертикально

Одиночный выбор ​

По умолчанию группа выбирает одно значение из Items: задайте Model, и группа сама отметит подходящий чип выбранным и оформит его — Selected или Variant на чипах вы не ставите. При Mandatory = true клик по выбранному чипу не снимает выбор. OnChange срабатывает с новым значением. Multiple = true переключает на несколько значений (Selection и OnSelectionChange). Отключённый элемент остаётся отключённым при смене выбора.

Живые счётчики ​

SetCounts(IDictionary<string, string>) меняет счётчики чипов, уже стоящих в ряду, на месте — ссылки на чипы, фокус и выбор остаются как были:

csharp
group.SetCounts(new Dictionary<string, string> { ["all"] = "74", ["weapons"] = "3" });
  • Неизвестные ключи игнорируются; чипы, чьего ключа нет, сохраняют свой счётчик.
  • Пустое значение или null убирает счётчик этого чипа.
  • Чипы строятся при монтировании группы, поэтому вызывайте SetCounts после него. До монтирования кладите счётчики в Items (ChipGroupItem.Count).

Вариант ​

filled · elevated · tonal · outlined · flat · text