Свойства Group
Указывайте значения цвета в формате HEX.
Использование
const data = [
// объект группы
{
type: "$group",
id?: string | number,
x?: number,
y?: number,
width: number,
height: number,
groupChildren?: array,
open?: boolean, // true по умолчанию
fixed?: boolean, // false по умолчанию
style?: {
strokeWidth?: number, // 1 по умолчанию
stroke?: string, // "#DEDEDE" по умолчанию
fill?: string,
overFill?: string,
partiallyFill?: string
},
exitArea?: {
// "unbound" по умолчанию
groupBehavior?: "unbound" | "boundNoBorderExtension" | "boundBorderExtension",
padding?: number
},
header?: {
height?: number, // 40 по умолчанию
fill?: string,
text?: string,
fontSize?: number, // 14 по умолчанию
lineHeight?: number, // 14 по умолчанию
textAlign?: "left" | "center" | "right", // "center" по умолчанию
textVerticalAlign?: "top" | "center" | "bottom", // "center" по умолчанию
fontStyle?: "normal" | "italic" | "oblique", // "normal" по умолчанию
fontColor?: string, // "#4C4C4C" по умолчанию
fontWeight?: string, // "500" по умолчанию
iconColor?: string, // "#808080" по умолчанию
position?: "top" | "bottom" | "left" | "right", // "top" по умолчанию
editable?: boolean, // true по умолчанию
closable?: boolean, // false по умолчанию
enable?: boolean // true по умолчанию
},
[key: string]?: any
},
// другие объекты групп
];
Описание
Объект группы содержит список свойств конфигурации, которые позволяют настроить позиционирование и внешний вид группы:
type- (обязательное) тип элемента, укажите значение "$group"id- (необязательное) уникальный id группыx- (необязательное) координата x положения группыy- (необязательное) координата y положения группыwidth- (обязательное) ширина группы, включая её заголовок (position: left/right)height- (обязательное) высота группы, включая её заголовок (position: top/bottom)groupChildren- (необязательное) массив с id дочерних элементов первого уровня вложенности группыopen- (необязательное) определяет, инициализируется ли группа в развёрнутом (true, по умолчанию) или свёрнутом (false) состоянии
Свойство open работает, если header инициализирован с атрибутом closable
fixed- (необязательное) включает/отключает возможность перемещения и изменения размера группы; false по умолчаниюstyle- (необязательное) объект с настройками стиля группы. Объект может содержать следующие атрибуты:strokeWidth- (необязательное) ширина границы группы, 1 по умолчаниюstroke- (необязательное) цвет границы группы, "#DEDEDE" по умолчаниюfill- (необязательное) цвет фона группыoverFill- (необязательное) цвет фона группы, когда пользователь удерживает элемент и перемещает его внутрь/наружу группы при условии, что весь элемент находится внутри группыpartiallyFill- (необязательное) цве т фона группы, когда пользователь удерживает элемент и перемещает его внутрь/наружу группы при условии, что часть элемента находится за пределами группы, а прочие настройки не заданы через атрибутexitArea
exitArea- (необязательное) объект с настройками, которые будут применены к элементу, когда пользователь перетаскивает его за пределы группы (применяется только к дочерним элементам первого уровня вложенности группы). Объект может содержать следующие атрибуты:groupBehavior- (необязательное) поведение дочернего элемента группы, когда пользователь перемещает его за пределы группы:"unbound"(по умолчанию) - пользователь может перемещать элемент внутрь или за пределы группы"boundNoBorderExtension"- пользователь может переместить элемент в группу, но не может перетащить его за пределы группы, если элемент уже был помещён внутрь группы. Элемент не будет расширять границы группы, когда пользователь пытается перетащить его за пределы группы"boundBorderExtension"- пользователь может переместить элемент в гру ппу, но не может перетащить его за пределы группы, если элемент уже был помещён внутрь группы. Элемент будет расширять границы группы, когда пользователь пытается перетащить его за пределы группы
Связанный пример: Редактор Diagram. Режим по умолчанию. Взаимодействие Groups и фигур
padding- (необязательное) определяет отступ между группой и краем элемента при перемещении элемента внутри группы
ПодсказкаАтрибут
paddingдоступен, еслиgroupBehaviorустановлен в значение"boundNoBorderExtension"или"boundBorderExtension"header- (необязательное) объект с настройками конфигурации заголовка группы. Атрибуты:height- (необязательное) высота заголовка, 40 по умолчаниюfill- (необязательное) цвет фона заголовкаtext- (необязательное) текст, отображаемый в заголовкеfontSize- (необязательное) размер шрифта в пикселях, 14 по умолчаниюlineHeight- (необязательное) высота строки, 14 по умолчаниюtextAlign- (необязательное) выравнивание текста в заголовке:"left","center"(по умолчанию),"right"textVerticalAlign- (необязательное) вертикальное выравнивание текста в заголовке:"top","center"(по умолчанию),"bottom"fontStyle- (необязательное) стиль шрифта текста:"normal"(по умолчанию),"italic","oblique"fontColor- (необязательное) цвет шрифта текста, "#4C4C4C" по умолчаниюfontWeight- (необязательное) насыщенность шрифта текста, возможные значения:"normal","bold","bolder","lighter", значения"100"-"900", где"400"соответствует normal, а"600"и выше - самый жирный шрифт;"500"по умолчаниюiconColor- (необязательное) цвет иконки заголовка, "#808080" по умолчаниюposition- (необязательное) позиционирование заголовка группы:"top"(по умолчанию) |"bottom"|"left"|"right"editable- (необязательное) включает/отключает возможность редактирования текста заголовка двойным щелчком по нему; true по умолчаниюclosable- (необязательное) показывает/скрывает иконку, предназначенную для разворачивания/сворачивания группы; false по умолчаниюenable- (необязательное) показывает/скрывает заголовок группы; true по умолчанию
key- (необязательное) пользовательское свойство с вашей собственной логикой, реализованной "под капотом"
Пример
const data = [
{
type: "$group",
id: 1,
width: 400,
height: 200,
x: 0,
y: 0,
header: {
text: "Top and collapsed header with tеxt alignment",
editable: true,
closable: true,
textAlign: "left", // "left", "center", "right"
textVerticalAlign: "center", // "top", "center", "bottom"
},
// дочерние элементы группы
groupChildren: [1.1, 1.2],
open: false
},
// настройка фигур для добавления в группу
{ type: "rectangle", id: 1.1, x: 50, y: 75, text: "Shape 1.1" },
{ type: "rectangle", id: 1.2, x: 200, y: 75, text: "Shape 1.2" }
];
Полезная статья: Настройка Groups
Свойства, специфичные для объекта "project"
Объект "project" используется как контейнер для задач и вех. Он работает как Group, позволяет создавать PERT-диаграммы различных уровней вложенности и обеспечивает визуальную группировку.
Использование
const data = [
// объект project
{
type: "project",
id: string | number,
parent?: string | number | null,
text?: string, // задаёт свойство header.text
open?: boolean,
// генерируется автоматически
x?: number,
y?: number,
width?: number,
height?: number,
groupChildren?: (string | number)[],
style?: {
fill?: string, // "#20B56D08" по умолчанию
stroke?: string, // "#20B56D33" по умолчанию
borderStyle?: string, // "dashed" по умолчанию
},
header?: {
height?: number, // 40 по умолчанию
text?: string, // генерируется автоматически на основе свойства text
closable?: boolean, // false по умолчанию
enable?: boolean, // true по умолчанию
fill?: string // "inherit" по умолчанию
}
},
// другие объекты project
]
Описание
При подготовке набора данных для объекта "project" вы можете использовать следующие свойства конфигурации:
type- (обязательное) тип элемента, укажите значение"project"id- (необязательное) уникальный id проектаparent- (необязательное) id родителя проектаtext- (необязательное) описание проектаopen- (необязательное) определяет, инициализируется ли проект в развёрнутом (true, по умолчанию) или свёрнутом (false) состоянии
Свойства ниже генерируются автоматически. Они вычисляются во время рендеринга, и их не следует задавать вручную.
x- (необязательное) координата x положения проектаy- (необязательное) координата y положения проектаwidth- (обязательное) ширина проекта, включая его заголовок (position: left/right)height- (обязательное) высота проекта, включая его заголовок (position: top/bottom)groupChildren- (необязательное) массив с id дочерних элементов первого уровня вложенности проектаstyle- (необязательное) объект с настройками стиля проекта. Объект может содержать следующие атрибуты:fill- (необязательное) цвет фона проектаstroke- (необязательное) цвет границы проектаborderStyle- (необязательное) стиль границы проекта
header- (необязательное) объект с настройками конфигурации заголовка проекта. Атрибуты:height- (необязательное) высота заголовка, 40 по умолчаниюtext- (необязательное) текст, отображаемый в заголовке (генерируется автоматически на основе свойстваtext)closable- (необязательное) показывает/скрывает иконку, предназначенную для разворачивания/сворачивания группы; false по умолчаниюenable- (необязательное) показывает/скрывает заголовок проекта; true по умолчаниюfill- (необязательное) цвет фона заголовка
Пример
const data = [
{
"id": "4.2",
"text": "QA Testing",
"type": "project",
"parent": "4",
"start_date": new Date(2026, 1, 18),
"duration": 3,
"progress": 0,
"open": true
},
{
"id": "4.2.1",
"text": "Functional Testing",
"type": "task",
"parent": "4.2",
"start_date": new Date(2026, 1, 18),
"duration": 2
},
{
"id": "4.2.2",
"text": "Usability Testing",
"type": "task",
"parent": "4.2",
"start_date": new Date(2026, 1, 20),
"duration": 1
}
];
Полезная статья: Группировка фигур в режиме PERT