Иерархический список (дерево) — древовидный каталог с большим количеством данных.

Когда нужно обеспечить пользователю удобную работу с большим количеством данных (сотни элементов). При этом либо пользователь имеет возможность структурировать эти данные в древовидный каталог, либо данные уже приходят к нему в таком виде из системы. Если эти условия не соблюдаются, то лучше использовать обычный список.

  • Название
  • Иконки элемента (опционально)
  • Кнопка дополнительных действий над элементом (опционально)
  • Кнопки «Развернуть» и «Свернуть»
  • Чекбокс (опционально)
  • Поиск по элементам (опционально)
tree-select

Если введен поисковый запрос — в дереве показываются только элементы:

  • которые соответствуют поисковому запросу;
  • являются родительскими по отношению к найденным в поисковом запросе.

Текст, совпавший с поисковым запросом в названии элемента, выделяется жирным.

Может быть одиночный или множественный выбор (ограничивается на уровне дерева).

Элемент можно выбрать, нажав на него (в любую область, кроме иконки «Развернуть» («Свернуть») и кнопки доп. действий). Чтобы выбрать несколько элементов мышью, используются клавиши Ctrl или Shift, чтобы выбрать несколько элементов с клавиатуры — клавиша Space.

Нелистовые элементы можно разворачивать и сворачивать по клику на иконку «стрелка».

Если в древовидном списке включены чекбоксы, то выбор нескольких элементов возможен через клик на чекбокс.

Иногда может присутствовать кнопка дополнительных действий над элементом.

Есть несколько вариантов множественного выбора элементов. См. в примерах.

Клавиша
Действие
Tab Если фокус установлен на предыдущем компоненте в таб-последовательности по отношению к дереву → Переход к первой строке дерева или к выделенной строке
Если фокус установлен на любом элементе дерева и у него нет доп. действий → Переход к следующему компоненту в таб-последовательности по отношению к дереву
Если фокус установлен на любом элементе дерева и у него есть доп. действия → Переход к первому доп. действию
Если фокус установлен на доп. действии элемента → Переход к следующему доп. действию (если оно есть), иначе переход к следующему компоненту в таб-последовательности по отношению к дереву
Shift + Tab Если фокус установлен на любом элементе дерева → Переход к предыдущему компоненту в таб-последовательности по отношению к дереву
Если фокус установлен на следующем компоненте в таб-последовательности по отношению к дереву → Переход к первой строке дерева или к выделенной строке
Если фокус установлен на нелистовом элементе → Раскрытие вложенных элементов этого элемента
Если фокус установлен на листовом элементе → Ничего не происходит
Если фокус установлен на нелистовом элементе → Закрытие вложенных элементов этого элемента
Если фокус установлен на листовом элементе → Ничего не происходит
Если фокус установлен на элементе дерева → Запуск основного действия этого элемента
Если фокус установлен на элементе дерева с чекбоксом → Ничего не происходит
Если фокус установлен на доп. действии → применение этого доп. действия
Space Если фокус установлен на элементе дерева с чекбоксом → Выбрать этот элемент дерева (и все вложенные, если есть)
Если фокус установлен на элементе дерева → Ничего не происходит
Если фокус установлен на доп. действии → применение этого доп. действия
Если фокус установлен на элементе дерева → Переход к следующему (если элемент последний — ничего не происходит) / предыдущему элементу дерева (если элемент первый — ничего не происходит)
PgUp Сместить фокус на самый нижний видимый элемент

Если текущий элемент — самый нижний видимый → Пролистать дерево вниз
Если текущий элемент — самый нижний в дереве → Ничего не происходит
PgDn Сместить фокус на самый верхний видимый элемент

Если текущий элемент — самый верхний видимый → Пролистать дерево вверх
Если текущий элемент — самая верхний в дереве → Ничего не происходит
Home Сместить фокус на первый элемент дерева
End Сместить фокус на последний загруженный элемент дерева
Ctrl + клик При клике по элементам дерева — множественный выбор строк
При клике в выбранный элемент — элемент перестает быть выбранным
Shift +

Shift +
Если фокус установлен на элементе дерева → Множественный выбор следующих / предыдущих элементов дерева (если строка первая или последняя — ничего не происходит)
Ctrl + C Если фокус установлен на элементах дерева → Копирование содержимого элементов
По умолчанию копируются названия элементов. Разделитель между элементами — перенос строки
Ctrl + A Если фокус установлен на любом элементе дерева → Выбрать все элементы дерева (включая незагруженные)
Вопросы и предложения по документации
Если у вас есть вопросы или вы хотите внести свой вклад в написание документации, пожалуйста, создайте issue в нашем репозитории на GitHub.