Плагины
Общее описание
Данная настройка позволяет активировать правое боковое меню с указанным списком плагинов.
Подключение
1. Настройка конфигурации
Для отображения правой панели со списком плагинов в рутовом приложении, необходимо в конфигурации заполнить полеplugins
. Поскольку сами плагины загружаются с помощьюq-web-component, то достаточно заполнить поляservice
иcomponent
:
export class QConfig {
plugins?: {
/**
* Название сервиса, в котором находится плагин
*/
service: string;
/**
* Название веб-компонента (плагина)
*/
component: string;
/**
* Маршрут по умолчанию
*/
route?: string;
/**
* @deprecated
* Иконка
* @example: "pi-book", "qi-skype"
*/
icon?: string;
/**
* @deprecated
* Задаёт отображение или скрытие плагина после его загрузки (по умолчанию false)
*/
opened?: boolean;
/**
* @deprecated
* Загрузка плагина происходит с инициализацией приложения
*/
initWithApp?: boolean;
}[];
};
2. Манифест плагина
Информацию о плагинах необходимо хранить в проекте самого плагина. Для этого достаточно создать файлmain.js
вsrc/assets/manifest
и заполнить его как обычный json.
{
/**
* Иконка
* @example: "pi-book", "qi-skype"
*/
icon?: string;
/**
* Задаёт отображение или скрытие плагина после его загрузки (по умолчанию false)
*/
opened?: boolean;
/**
* Загрузка плагина происходит с инициализацией приложения
*/
initWithApp?: boolean;
/**
* Описание плагина
*/
description?: string;
};
Разработка
- Для создания проекта, используйте продукт Дизанер интерфейсов, и добавьте в него логику вашего плагина.
- Затем создайте файл
main.js
вsrc/assets/manifest
. Этот файл отвечает за настройки плагина такие как иконка, описание, загрузка при инициализации приложения и т.д. Его необходимо заполнить его как обычный json. - В проекте в angular.json в раздел
projects.accounts.architect.build.options.assets
добавьте следующую конфигурацию :
{
"input": "src/assets/manifest",
"output": "/manifest",
"glob": "main.js"
}
Возможности взаимодействия
Отправка уведомления
sendNotification(): void {
this.qCoreServise.globalEvents.event('plugin-notification', {service: 'qpalette-plugins', component: 'qpaletteplugins', notification: true});
}
Закрытие плагина
close(): void {
this.qCoreServise.globalEvents.event('plugin-close', {service: 'qpalette-plugins', component: 'qpaletteplugins'});
}