В библиотеке Slim Select поведение и внешний вид компонента управляются через единый объект конфигурации. Он передаётся при создании экземпляра и определяет, как будет вести себя выпадающий список, как отображаются элементы, каким образом осуществляется поиск и взаимодействие с выбором.
Базовая форма инициализации выглядит следующим образом:
new SlimSelect({
select: '#example-select',
settings: {
placeholderText: 'Выберите значение',
allowDeselect: true
}
})
Объект settings является центральной точкой настройки
поведения компонента и включает набор параметров, влияющих на UX, логику
поиска и визуальное представление.
Определяет текст-заполнитель, который отображается, когда элемент не выбран.
settings: {
placeholderText: 'Выберите категорию'
}
Ключевой момент заключается в том, что placeholderText
применяется как для пустого состояния, так и для случаев, когда
выбранное значение сброшено.
Управляет отображением строки поиска внутри выпадающего списка.
settings: {
showSearch: true
}
Возможные значения:
true — строка поиска отображается всегдаfalse — поиск скрытПоведение особенно важно для списков с небольшим количеством элементов, где поиск может быть избыточным и ухудшать визуальную компактность интерфейса.
Позволяет задать текст внутри поля поиска.
settings: {
searchPlaceholder: 'Поиск...'
}
Используется в связке с showSearch. Не влияет на
функциональность фильтрации, но улучшает визуальную ясность
интерфейса.
Включает подсветку совпадений в результатах поиска.
settings: {
searchHighlight: true
}
При активированном параметре совпадающие части строки выделяются, что упрощает восприятие результатов фильтрации, особенно при длинных списках.
Определяет возможность отмены выбора уже выбранного значения.
settings: {
allowDeselect: true
}
Если параметр включён, повторный клик по выбранному элементу снимает
выбор. При значении false выбранное значение остаётся
фиксированным до выбора другого элемента.
Поведение важно в сценариях, где требуется обязательный выбор значения (например, формы с обязательными полями).
Контролирует автоматическое закрытие выпадающего списка после выбора элемента.
settings: {
closeOnSelect: false
}
Возможные варианты:
true — список закрывается после выбораfalse — список остаётся открытым для множественного
выбораОсобенно значим при работе с мультивыбором, где требуется последовательное добавление нескольких значений без повторного открытия списка.
При отсутствии выбранного значения Slim Select отображает
placeholderText. Это состояние считается базовым и влияет
на поведение интерфейса до первого взаимодействия пользователя.
settings: {
placeholderText: 'Не выбрано'
}
Если в исходном <select> задан
<option disabled selected>, placeholder может не
отображаться, так как компонент считает, что значение уже
установлено.
Slim Select использует внутренний механизм фильтрации строк, который активируется при вводе текста в поле поиска. Настройки объекта позволяют лишь управлять визуальной частью, тогда как сама логика сопоставления строк остаётся встроенной.
Включение:
settings: {
showSearch: true,
searchHighlight: true
}
При этом:
Если поле поиска пустое, отображается полный список элементов. Это
поведение не изменяется через settings, так как является
частью базовой логики компонента.
Объект настроек позволяет формировать сложное поведение компонента за счёт комбинации параметров.
Пример конфигурации для формы с множественным выбором и поиском:
new SlimSelect({
select: '#multi-select',
settings: {
placeholderText: 'Выберите элементы',
showSearch: true,
searchPlaceholder: 'Найти...',
searchHighlight: true,
closeOnSelect: false,
allowDeselect: true
}
})
Такое сочетание параметров формирует поведение, ориентированное на работу с большими наборами данных и множественным выбором без лишних переключений интерфейса.
settings: {
showSearch: false
}
В этом случае:
Такой режим используется для коротких списков, где поиск не даёт практической пользы.
settings: {
allowDeselect: false
}
При этом:
Подобная конфигурация характерна для форм с обязательными параметрами.
Объект settings не только управляет логикой, но и влияет
на структуру DOM-элементов, создаваемых Slim Select:
Это означает, что изменение settings требует
пересоздания экземпляра для полного применения изменений.
После создания экземпляра Slim Select объект settings не
предназначен для динамического изменения напрямую. Изменения не
применяются автоматически к уже инициализированному компоненту.
Типичный подход при необходимости изменения поведения:
const instance = new SlimSelect({
select: '#example',
settings: {
showSearch: true
}
})
// пересоздание при смене конфигурации
instance.destroy()
new SlimSelect({
select: '#example',
settings: {
showSearch: false
}
})
Поведение компонента определяется в следующем порядке:
<select> и
<option>settingsЭто важно при конфликте параметров, когда, например, HTML содержит
disabled, а настройки предполагают активное состояние.
settings: {
placeholderText: 'Выбор'
}
Используется для простых интерфейсов без поиска и дополнительных опций.
settings: {
showSearch: true,
searchPlaceholder: 'Поиск значения'
}
Ориентирован на списки средней и большой длины.
settings: {
showSearch: true,
closeOnSelect: false,
allowDeselect: true
}
Предназначен для сценариев, где пользователь формирует набор значений постепенно.
Объект settings не является универсальным конфигуратором
всей библиотеки. Он не управляет:
Его задача ограничена управлением UX и базовым поведением интерфейса выбора.