При инициализации Slim Select создаётся конфигурационный объект, который управляет поведением компонента до момента пользовательского взаимодействия. Если параметры не передаются явно, используется набор встроенных значений, определяющих базовую функциональность: рендеринг списка, поиск, выбор элементов и взаимодействие с DOM.
Объект настроек передаётся в конструктор и формирует поведение селекта:
new SlimSelect({
select: '#my-select',
settings: {}
});
Поле settings содержит ключевые параметры, которые
определяют внешний вид и функциональность. При отсутствии
пользовательской конфигурации Slim Select подставляет значения по
умолчанию.
Если объект settings не задан, система работает в режиме
стандартной конфигурации:
Такая конфигурация ориентирована на универсальные HTML
<select> элементы без дополнительных требований к
интерфейсу.
Поле searchPlaceholder определяет текст внутри строки
поиска при открытом списке.
По умолчанию:
searchPlaceholder: 'Search'
В локализованных интерфейсах значение часто переопределяется, но базовая библиотека использует английскую строку. Этот параметр активен только при включённой функции поиска.
Параметр placeholderText управляет отображаемым текстом,
когда ни один элемент не выбран.
По умолчанию значение берётся из HTML-атрибута
<option> или устанавливается как пустая строка.
Логика:
<option disabled selected> →
используется его текстОпределяет возможность снятия выбранного значения.
По умолчанию:
allowDeselect: false
Это означает, что в режиме одиночного выбора пользователь не может очистить выбор, кликнув по уже выбранному элементу. Сброс возможен только программно или через дополнительный элемент управления.
Управляет отображением строки поиска внутри выпадающего списка.
По умолчанию:
showSearch: true
При большом количестве элементов поле поиска становится основным инструментом фильтрации. Если количество опций небольшое, интерфейс остаётся неизменным, но поле всё равно присутствует.
Текст, отображаемый при отсутствии совпадений в поиске.
По умолчанию:
searchText: 'No results'
Этот параметр влияет только на состояние пустого результата фильтрации и не связан с данными select-элемента.
Определяет автоматический фокус на поле поиска при открытии списка.
По умолчанию:
focusSearch: true
Поведение улучшает скорость взаимодействия: при раскрытии списка курсор сразу помещается в строку ввода, позволяя начинать набор без дополнительных действий.
Включает визуальное выделение совпадений в списке опций.
По умолчанию:
searchHighlight: false
При активном поиске совпадающие символы могут подсвечиваться, однако базовая конфигурация не включает это поведение, чтобы избежать лишней визуальной нагрузки.
Определяет закрытие выпадающего списка после выбора элемента.
По умолчанию:
closeOnSelect: true
В одиночном режиме список закрывается сразу после выбора. Это
стандартное поведение HTML <select>.
Флаг множественного выбора.
По умолчанию:
isMultiple: false
Значение вычисляется автоматически на основе атрибута
<select multiple>. Если атрибут присутствует, Slim
Select переключается в режим массива значений.
Контролирует общее состояние активности селекта.
По умолчанию:
disabled: false
Если HTML-элемент имеет атрибут disabled, компонент
наследует это состояние и блокирует все взаимодействия.
Slim Select использует массив данных для формирования списка опций.
Если он не передан, данные извлекаются напрямую из DOM
<option> элементов.
По умолчанию:
data: null
При отсутствии внешнего массива происходит автоматическая парсинг-инициализация:
<option>{ text, value, selected, disabled }Начальное значение выбора.
По умолчанию:
value: null
Если в HTML присутствует selected, оно становится
исходным значением. При отсутствии выделенных элементов значение
остаётся пустым.
Если пользователь не задаёт собственную функцию поиска, используется стандартный алгоритм:
Логика не использует регулярные выражения по умолчанию, что снижает нагрузку на больших списках.
Управляет отображением выбранного значения внутри основного поля.
По умолчанию:
showContent: true
Если отключить, выбранное значение не будет визуально отображаться, но сохранится в состоянии компонента.
Определяет позицию отображения выбранного текста.
По умолчанию:
contentPosition: 'relative'
Значение влияет на внутреннюю верстку и способ вставки DOM-узлов.
Контейнер, в котором создаётся интерфейс Slim Select.
По умолчанию используется:
container: document.body
Если селектор не ограничен, компонент добавляется в
body, что обеспечивает корректную работу позиционирования
dropdown.
Внутреннее состояние компонента включает:
По умолчанию состояние инициализируется автоматически и не требует пользовательского вмешательства.
Флаг открытия выпадающего списка.
По умолчанию:
open: false
Изменяется динамически при взаимодействии пользователя.
Контроль открытия списка по клику.
По умолчанию:
shouldOpen: true
Если отключить, селект становится статическим и не реагирует на взаимодействия, сохраняя только отображение значения.
Базовый класс для корневого элемента.
По умолчанию:
className: ''
Slim Select использует собственные системные классы, но пользователь может расширять их через этот параметр. При пустом значении применяется стандартная схема именования классов библиотеки.
Задержка обработки ввода в поиске.
По умолчанию:
delay: 0
Фильтрация выполняется синхронно, без debounce. Это обеспечивает мгновенную реакцию, но при больших объёмах данных может требовать оптимизации на уровне кастомной конфигурации.
Slim Select может работать в режиме автоинициализации при подключении
к существующему <select> элементу. В этом случае
используется полный набор дефолтных параметров:
Любые отсутствующие параметры заменяются значениями встроенной конфигурации, что обеспечивает предсказуемое поведение компонента без дополнительной настройки.
Комбинация стандартных значений формирует согласованную модель поведения:
Такой набор обеспечивает совместимость с классическим HTML
<select> и минимизирует необходимость дополнительной
конфигурации при простых сценариях использования.