config.json
Общее описание
Рутовое приложение может работать с пустым конфигом. Для случаев, когда требуется скрыть табы или боковую панель, требуется конфигурация.
При создании проекта доступны 3 файла конфигурации:config.base.json
,config.prod.json
иconfig.local.json
. При старте приложения, в зависимости от окружения, рутовое приложение загружает два конфига. В production-режиме рутовое приложение сделает запрос на загрузкуconfig.base.json
иconfig.prod.json
, а после загрузки объединит их в один объект.
Интерфейс конфигурации находится в@diasoft/qpalette-core
.
export class QConfig {
/**
* Позволяет подключить внешние скрипты к рутовому приложению
*
* Можно указать просто строку (ссылку на скрипт) или объект,
* содержащий src (ссылку на скрипт) и объект data, содержащий data-атрибуты
*/
scripts?: (
| {
src: string;
data?: {
[k: string]: string | number | boolean;
};
}
| string
)[];
/**
* Позволяет подключить внешние виджеты (плагины) к рутовому приложению
*/
plugins?: {
/**
* Название сервиса
*/
service: string;
/**
* Название компонента
*/
component: string;
/**
* Маршрут по умолчанию
*/
route?: string;
/**
* Иконка
* @example: "pi-book", "qi-skype"
*/
icon?: string;
/**
* Открывать после загрузки?
*/
opened?: boolean;
}[];
/**
* Настройка таб-бара
*/
tabs?: {
/**
* Отображает таб-бар
*/
visible?: boolean;
/**
* Устанавливает название приложения в таб-баре
*/
appName?: string;
/**
* Устанавливает кастомную домашнуюю страницу
* Пример url: /$service/$component/$route
*/
appNameUrl?: string;
};
/**
* Управление цветовой схемой
* @deprecated
*/
color?: {
/**
* Фиксирует определённую цветовую схему
*/
scheme?: string;
/**
* Фиксирует светлую/тёмную тему
*/
theme?: string;
/**
* Определяет тему по-умолчанию
*/
defaultTheme?: string;
/**
* Определяет цветовую схему по-умолчанию
*/
defaultScheme?: string;
};
/**
* Настройка кастомных тем
* @deprecated
*/
themes?: {
/**
* Отображает название темы
*/
name: string;
/**
* Устанавливает id темы
*/
id: string;
}[];
/**
* Управление схемой и темой
*/
theme?: {
/**
* Фиксирует светлую/тёмную схему
*/
scheme?: string;
/**
* Фиксирует определённую тему
*/
theme?: string;
/**
* Определяет схему по-умолчанию
*/
defaultScheme?: string;
/**
* Определяет тему по-умолчанию
*/
defaultTheme?: string;
/**
* Определяет список доступных тем, включая кастомные
*/
themes?: [
{
/**
* Отображает название темы
*/
name: string;
/**
* Устанавливает id темы
*/
id: string;
}
];
};
/**
* Настройки сайд-бара
*/
sidebar?: {
/**
* Отображает сайд-бар
*/
visible?: boolean;
/**
* Отображает логотип в сайд-баре
*/
logo?: string;
/**
* Отображает логотип в мобильной версии
*/
logoSmall?: string;
/**
* Позволяет настраивать динамическое меню. Используйте только в dev-режиме!
*/
dynamicMenu?: boolean;
};
/**
* Настройки для панели настроек
*/
settingsPanel?: {
/**
* Отображает панели настроек
*/
visible?: boolean;
/**
* Отображает разделы
*/
tabs?: {
/**
* Настройки основного раздела
*/
main?: {
/**
* Отображает основной раздел
*/
visible?: boolean;
/**
* Отображает настройку языка
*/
showLanguage?: boolean;
/**
* Настройки сохранения табов
*/
tabsSavingMode?: {
/**
* Отображает настройку сохранения табов
*/
visible?: boolean;
/**
* Устанавливает дефолтное значение
* localStorage - Сохранять всегда
* sessionStorage - Сохранять в рамках сессии пользователя
* memoryStorage - Не сохранять
*/
default?: 'localStorage' | 'sessionStorage' | 'memoryStorage';
},
/**
* Настройки аккаунта
*/
account?: {
/**
* Отображает раздел аккаунта
*/
visible?: boolean;
};
}
}
};
/**
* Настройки для панели настроек
*/
settingsPanel?: {
/**
* Отображает панели настроек
*/
visible?: boolean;
/**
* Отображает разделы
*/
tabs?: {
/**
* Настройки основного раздела
*/
main?: {
/**
* Отображает основной раздел
*/
visible?: boolean;
/**
* Отображает настройку языка
*/
showLanguage?: boolean;
/**
* Настройки сохранения табов
*/
tabsSavingMode?: {
/**
* Отображает настройку сохранения табов
*/
visible?: boolean;
/**
* Устанавливает дефолтное значение
* localStorage - Сохранять всегда
* sessionStorage - Сохранять в рамках сессии пользователя
* memoryStorage - Не сохранять
*/
default?: 'localStorage' | 'sessionStorage' | 'memoryStorage';
}
},
/**
* Настройки аккаунта
*/
account?: {
/**
* Отображает раздел аккаунта
*/
visible?: boolean;
};
}
};
/**
* Настройки формы авторизации
*/
loginForm?: {
/**
* Нужна ли авторизация в приложении
*/
visible?: boolean;
/**
* Устанавливает значение свойства CSS background для фона формы авторизации
*/
background?: string;
/**
* Устанавливает логотип на форме авторизации
*/
logo?: string;
/**
* Устанавливает информацию о пользователе на панеле табов (правый верхний угол приложения)
*/
showInTabs?: boolean;
};
/**
* Настройки бандл-лоадера
*/
bundleLoader?: {
/**
* Устанавливает URL-паттерн для загрузки проект.
* Переменные паттерна:
* * $port - устанавливает текущий порт
* * $protocol - устанавливает текущий протокол
* * $domain - устанавливает текущий домен
* * $service - устанавливает сервис текущего веб-компонента
* * $component - устанавливает название текущего веб-компонента
*
* @example
* $protocol://$domain:$port/$service/$component/main.js
*/
bundleUrl?: string;
};
/**
* Настройки виджет-лоадера
*/
widgetLoader?: {
/**
* Устанавливает URL-паттерн для загрузки виджетов
*
* @example
* $protocol://$domain:$port/$service/widgets/$component/main.js
*/
bundleUrl?: string;
};
widgets?: {
bundleUrl?: string;
};
/**
* Паттерн базового URL для API
*/
apiBaseUrl?: string;
/**
* Параметры модуля авторизации
*/
auth?: any;
/**
* Конфигурирование QPermissionsModule
*/
permissions?: {
/**
* Базовый адрес API
* По умолчанию /api
*/
baseUrl?: string;
/**
* Адрес RBAC-гейтвея
*/
rbacPolicyUrl?: string;
/**
* Адреса для ABAC-гейтвеев
*/
abacPolicyUrl?: {
/**
* Объекты доступа
*/
objects?: string;
/**
* Проверка прав текущего пользователя
*/
checkrights?: string;
};
};
/**
* Настройки ядра
*/
common?: {
/**
* Настройки системы обработки больших чисел
*/
bigNumbers?: {
/**
* Включает автоматическую конвертацию в HTTP-запросах и ответах больших чисел без потерь.
*
* Если в ответе на запрос встречается число больше `Number.MAX_SAFE_INTEGER`, оно будет преобразовано в тип `QBigInt`.
* Если в запросе встречается тип `QBigInt`, оно будет преобразовано в число без кавычек.
*
* @default false
*/
autoConvert?: boolean;
}
}
}
Описаниеauth
- см. объект конфигурации модуля QAuthModule.
ОписаниеbundleUrl
иapiBaseUrl
- см. раздел "Об URL паттернах" в объекте конфигурации модуля QUrlService.
Подробнее о настройке темизации см. в Темизация приложения.
Описание настроек common.bigNumbers
– см. в статье.