Общие параметры в ui.entity-selector
В этой статье описаны общие структуры параметров для диалога, элементов, вкладок и тегов. Эти структуры используют несколько классов ui.entity-selector.
Параметры, которые относятся только к Dialog, описаны в статье Dialog. Параметры, которые относятся только к TagSelector, описаны в статье TagSelector.
Общие структуры используются в параметрах ItemOptions, TagItemOptions, TabOptions, TagSelectorOptions, HeaderOptions и FooterOptions.
Выбирайте уровень настройки по сценарию. Для одного элемента задавайте параметр в самом элементе. Для всех элементов типа объекта используйте EntityOptions.itemOptions или EntityOptions.tagOptions.
В примерах ниже классы импортируются из расширения ui.entity-selector.
import { Dialog, TagSelector, DefaultFooter } from 'ui.entity-selector';
Поля общих структур передаются только там, где нужно переопределить стандартное отображение. Обязательные поля сценарных объектов описаны в статьях Dialog и TagSelector.
TextNodeOptions
TextNodeOptions задает текстовое или HTML-содержимое для заголовков, подзаголовков, подписей и бейджей.
| Параметр | Тип | Описание |
|---|---|---|
text |
string |
Текст или HTML-строка |
type |
TextNodeType |
Тип содержимого: TEXT или HTML |
Передавайте type: 'HTML' только для доверенной HTML-строки. Для пользовательского ввода используйте type: 'TEXT' или строку.
const dialog = new Dialog({
targetNode: button,
items: [
{
id: 1,
entityId: 'project',
title: {
text: '<b>Проект внедрения</b>',
type: 'HTML',
},
},
],
});
AvatarOptions
AvatarOptions задает визуальные параметры аватара элемента или тега.
В поля с CSS-значениями передавайте только значения, которые ожидает соответствующее CSS-свойство. Для изображений используйте заранее подготовленные пути или доверенные URL.
| Параметр | Тип | Описание |
|---|---|---|
bgSize |
string |
CSS-значение размера фонового изображения |
bgColor |
string |
Цвет фона |
bgImage |
string |
CSS-значение фонового изображения |
border |
string |
CSS-значение рамки |
borderRadius |
string |
CSS-значение скругления |
outline |
string |
CSS-значение внешней рамки |
outlineOffset |
string |
CSS-смещение внешней рамки |
icon |
string |
Иконка аватара |
iconColor |
string |
Цвет иконки |
const selector = new TagSelector({
tagAvatarOptions: {
bgColor: '#e7f5ff',
iconColor: '#1d6fd6',
},
});
CaptionOptions
CaptionOptions задает отображение подписи элемента или DOM-узла элемента.
Параметры подписи можно передать в ItemOptions.captionOptions или в параметры DOM-узла элемента.
| Параметр | Тип | Описание |
|---|---|---|
fitContent |
boolean |
Запрещает подписи растягиваться на свободную ширину |
maxWidth |
number или string |
Максимальная ширина подписи |
justifyContent |
'left', 'right' или 'center' |
Выравнивание подписи |
BadgesOptions
BadgesOptions задает отображение группы бейджей элемента.
Параметры группы бейджей передавайте в ItemOptions.badgesOptions, если нужно настроить расположение всех бейджей элемента.
| Параметр | Тип | Описание |
|---|---|---|
fitContent |
boolean |
Запрещает группе бейджей растягиваться на свободную ширину |
maxWidth |
number или string |
Максимальная ширина группы бейджей |
justifyContent |
'left', 'right' или 'center' |
Выравнивание группы бейджей |
ItemBadgeOptions
ItemBadgeOptions задает один бейдж элемента.
Бейджи передаются в ItemOptions.badges. Для текста бейджа используйте строку или TextNodeOptions; HTML-содержимое передавайте только для доверенной разметки.
| Параметр | Тип | Описание |
|---|---|---|
title |
string или TextNodeOptions |
Текст бейджа |
textColor |
string |
Цвет текста бейджа |
bgColor |
string |
Цвет фона бейджа |
border |
string |
CSS-значение рамки бейджа |
const dialog = new Dialog({
targetNode: button,
items: [
{
id: 1,
entityId: 'project',
title: 'Проект внедрения',
badges: [
{
title: 'Новый',
bgColor: '#e7f5ff',
textColor: '#1d6fd6',
},
],
},
],
});
HeaderOptions и FooterOptions
HeaderOptions и FooterOptions — объекты с параметрами, которые получает класс заголовка или футера.
Строку в content, header или footer используйте для доверенной статической разметки. Если содержимое зависит от пользовательского ввода, создавайте DOM-узел и передавайте пользовательский текст как текстовое содержимое, а не как HTML-строку.
Для DefaultHeader и DefaultFooter доступны параметры:
| Параметр | Тип | Описание |
|---|---|---|
content |
string, HTMLElement или HTMLElement[] |
Содержимое заголовка или футера |
containerClass |
string |
CSS-класс контейнера |
containerStyles |
Object |
CSS-стили контейнера |
Пользовательский класс заголовка или футера наследуйте от DefaultHeader, DefaultFooter, BaseHeader или BaseFooter. В классе на основе DefaultHeader или DefaultFooter переопределите getContent(). В классе на основе BaseHeader или BaseFooter переопределите render(). Собственные параметры читайте через getOption().
header и footer принимают строку, DOM-узел, массив DOM-узлов или класс. Если передан класс, параметры из headerOptions или footerOptions доступны через метод getOption().
class ProjectFooter extends DefaultFooter
{
getContent()
{
return this.getOption('label', 'Создать проект');
}
}
const dialog = new Dialog({
targetNode: button,
footer: ProjectFooter,
footerOptions: {
label: 'Добавить проект',
},
});