/** * Модели и типы данных поискового виджета * * Этот модуль определяет основные структуры данных и типы конфигурации, * используемые компонентом BarneoSearchWidget. * * @module searchWidgetModels * */ /** * Интерфейс конфигурации для компонента поискового виджета. * Определяет все настраиваемые опции для поведения и внешнего вида поиска. */ export interface SearchWidgetConfig { /** * Текст-заполнитель, отображаемый в поле ввода поиска. * @defaultValue "Поиск товаров..." */ placeholder?: string; /** * Задержка в миллисекундах перед запуском поисковых запросов. * @defaultValue 300 */ debounceMs?: number; /** * Минимальное количество символов, необходимое для запуска поиска. * @defaultValue 2 */ minSearchLength?: number; /** * Включить стили темной темы для поискового виджета. * @defaultValue false */ darkMode?: boolean; /** * Показывать кнопку очистки в поле ввода поиска. * @defaultValue true */ showClearButton?: boolean; /** * Включить стили режима фокуса для улучшенной визуальной обратной связи. * @defaultValue false */ focus?: boolean; } /** * Структура данных товара, возвращаемая поисковыми операциями. * Представляет отдельный товар со всеми его свойствами и метаданными. */ export interface SearchProduct { /** * Уникальный идентификатор товара. * @required */ id: string; /** * Название/заголовок товара. * @required */ name: string; /** * Описание товара (опционально). */ description?: string; /** * Цена товара в наименьшей единице валюты (например, копейки для RUB). * @required */ price: number; /** * URL изображения товара или null, если изображение недоступно. */ picture: string | null; /** * URL страницы деталей товара или null, если недоступен. */ url: string | null; /** * Артикул товара/SKU. * @required */ vendor_code: string; /** * Массив свойств товара и их значений. * @defaultValue [] */ properties: Array<{ /** * Название свойства. */ name: string; /** * Массив значений свойства. */ values: Array<{ value: string; }>; }>; /** * Информация о категории товара. */ category?: { /** * ID категории. */ id: string; /** * Название категории. */ name: string; } | null; /** * Классификационные свойства для расширенной фильтрации. * @defaultValue [] */ classification_properties?: Array<{ /** * ID свойства. */ id: string; /** * Название свойства. */ name: string; /** * Значение свойства. */ value: { /** * ID значения. */ id: string; /** * Название значения. */ name: string; }; }>; } /** * Структура данных поисковой подсказки/предложения. * Используется для автодополнения и поисковых предложений. */ export interface SearchHint { /** * Отдельное слово из подсказки. * @required */ word: string; /** * Полный текст подсказки. * @required */ hint: string; } /** * Полная структура данных события поиска. * Содержит всю информацию о поисковой операции и ее результатах. */ export interface SearchEvent { /** * Поисковый запрос, который был выполнен. * @required */ query: string; /** * Массив товаров, возвращенных поиском. * @defaultValue [] */ results: SearchProduct[]; /** * Общее количество товаров, соответствующих критериям поиска. * @defaultValue 0 */ totalResults: number; /** * Выполняется ли поиск в данный момент. * @defaultValue false */ isLoading: boolean; /** * Предложение исправления запроса (например, "Возможно, вы имели в виду..."). */ correction?: string | null; /** * Поисковые подсказки для функциональности автодополнения. * @defaultValue [] */ productHints?: SearchHint[]; /** * Доступные фильтры для результатов поиска. * @defaultValue [] */ filters?: Array<{ /** * Отображаемое имя фильтра. */ name: string; /** * Код/идентификатор фильтра. */ code: string; /** * Доступные значения фильтра. */ values: Array<{ /** * ID значения. */ id: string; /** * Отображаемое имя значения. */ name: string; /** * Выбрано ли это значение в данный момент. */ is_selected: boolean; }>; }>; } //# sourceMappingURL=models.d.ts.map