/** * Barneo Search Library - Компоненты поиска для Vue 3 * * Комплексная библиотека Vue 3, предоставляющая мощную функциональность поиска * с автодополнением, фильтрацией, сортировкой и отображением товаров. * * @module barneo-search-library * */ // Основной экспорт библиотеки // Экспортируем все из модулей export * from "./modules"; // Экспортируем типы export * from "./types/config"; // Экспортируем менеджер конфигурации export * from "./config/BarneoConfigManager"; // Vue плагин import type { App } from "vue"; import type { BarneoConfig } from "./types/config"; import { BarneoSearchWidget, BarneoFiltersWidget, BarneoProductsWidget, BarneoSortWidget, } from "./modules"; import { BarneoConfigPlugin } from "./config/BarneoConfigManager"; // Импортируем глобальные типы Vue компонентов import "./vue-globals.d" /** * **Barneo Search Library - Vue Плагин** * * _Комплексный Vue 3 плагин, предоставляющий мощную функциональность поиска с автодополнением, фильтрацией, сортировкой и отображением товаров._ * * @group Plugin * */ export default { /** * Устанавливает плагин Barneo Search Library в Vue приложение. * * Этот метод: * - Регистрирует все компоненты Barneo глобально * - Инициализирует менеджер конфигурации * - Настраивает управление URL параметрами (автоматически) * - Конфигурирует API сервис * * Примечание: URL менеджер инициализируется через useUrlManagerInit() в компонентах. * См. документацию по использованию URL менеджера. * * @param {App} app - Экземпляр Vue приложения * @param {Partial} config - Опциональный объект конфигурации * * @example * ```typescript * import { createApp } from 'vue' * import BarneoSearchWidget from 'barneo-search-widget-lib' * * const app = createApp(App) * * app.use(BarneoSearchWidget, { * api: { * baseUrl: 'https://api.search.ensi.cloud', * token: 'your-token', * customerId: 'your-customer-id', * locationId: 'your-location-id' * } * }) * ``` */ install(app: App, config?: Partial) { // Инициализируем конфигурацию app.use(BarneoConfigPlugin, config); // Регистрируем компоненты app.component("BarneoSearchWidget", BarneoSearchWidget); app.component("BarneoFiltersWidget", BarneoFiltersWidget); app.component("BarneoProductsWidget", BarneoProductsWidget); app.component("BarneoSortWidget", BarneoSortWidget); }, };